PDA

View Full Version : چگونه از تکراری بودن مقدار GUID جلوگیری شود



bitcob589
شنبه 05 بهمن 1392, 18:37 عصر
با سلام
با استفاده از کد زیر در نظر دارم مقدار غیر تکراری ایجاد نماییم

Guid m= Guid.NewGuid();

چگونه می توان در همان لحظه اگر داده ایجاد شده توسط دستور بالا تکراری بود در همان لحظه با استفاده از Guid یک مقدار غیر تکراری دیگر ایجاد نماییم این عملیات تا زمانی ادامه یابد که مقدار خروجی ما تکراری نباشد

چگونه چنین چیزی امکانپذیر است.

hamid_hr
شنبه 05 بهمن 1392, 18:51 عصر
خب باید قبلی ها رو نگه داری بع بیای مقایسه کنی اگه برابر بود یکی دیگه بگیری

bitcob589
شنبه 05 بهمن 1392, 19:00 عصر
یکی دیگه بگیری
چگونه یک مقدار دیگری بگیریم

hamid_hr
شنبه 05 بهمن 1392, 19:12 عصر
Guid m= Guid.NewGuid();

bitcob589
شنبه 05 بهمن 1392, 19:19 عصر
اگر به صورت کد در پست قبل نوشته شده است پیاده سازی شود باید صفحه رفرش شود تا یک مقدار جدیدی داده شود در نظر ندارم صفحه رفرش شود یا بر روی دکمه کلیک شود یعنی در همان لحظه بدون کلیک بر روی دکمه یک مقدار جدید دیگری مقدار غیر تکراری دیگری داده شود این عمل تا زمانی ادامه یابد که یک مقدار غیر تکراری بدست آوریم

hamid_hr
شنبه 05 بهمن 1392, 19:29 عصر
public string NewGuid(List<string> LsGuid)
{
string gur;
Guid gd;
while (true)
{
gd = new Guid();
gur=gd.ToString();
if (LsGuid.AsEnumerable().Select(rd => rd == gur).Any())
continue;
return gur;
}
}


لیست ورودی انتخابهای قبلا شما هست
اگه تکراری باشه میره یه guid جدید میسازه تا زمانی که تکراری نده

fmehrvarzi
شنبه 05 بهمن 1392, 19:53 عصر
داداش GUID هیچ وقت تکراری نمیشه این مقدار همیشه یکتاست! دلیلش:

Guid.NewGuid is always unique.It will not repeat again.GUIDs consist of random numbers grouped into several sections: timestamp, clock sequence and node. The different sections for the GUID 8743428c-ef91-4d05-9e7c-4a2e856e813a are:-

8743428c - Low field of the timestamp
ef91 - Middle field of the timestamp
4d05 - High field of the timestamp with multiplexed version number
9e - High field of the clock sequence with multiplexed variant type
7c - Low field of the clock sequence
4a2e856e813a - Spatially unique node identifier

It can generate a large number of combinations.

Hope this will help you!!
منبع:
http://www.dotnetspider.com/forum/9488-Guid.NewGuid-always-unique-.-It-wont-repeat-again.aspx