我有2個GUID - guid1 & guid2。我想通過先訂購最低價格將它們合併爲一個GUID。如何訂購兩個GUID作爲最低的第一個?
所以我會做:
if(Guid1.Length != Guid2.Length)
{
if (Guid1.Length > Guid2.Length)
return Guid2 + Guid1;
else
return Guid1 + Guid2;
}
else
{
var isDiff = true;
var index = Guid1.Length - 1;
while(isDiff)
{
if (index < 0) // same guids
return Guid1 + Guid2;
if(Guid1[index] == Guid2[index])
{
index--;
}
else
{
// Here stuck
}
}
}
在評論部分,我要檢查每個字符是否是一個數字或字母,發現這是最低的,然後串聯並與返回字符串最低的一個。
實施例:
GUID1 = 「AB12」; guid2 =「a21c」;
所以我想每個字符串字符都可以變成它的ASCII等價物,然後找到最低值。
對於我的例子中,返回字符串將是:
GUID1 + GUID2 = 「ab12a21c」
因爲用於第二字符的十進制值是32(對於編號2)和98(對於b) 。
這是最好的方法嗎?如果是這樣,我如何在C#中轉換爲ASCII?
你對「最低」的定義是什麼? – 2014-08-30 13:11:44
此外,它似乎你的「guid」是一個字符串。爲什麼不使用['Guid'](http://msdn.microsoft.com/zh-cn/library/system.guid%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang= csharp#code-snippet-1)結構呢?然後你可以更容易地比較它們,只需選擇較低的那個(該結構實現'IComparable') – 2014-08-30 13:15:45
@HonzaBrestan如果我沒有弄錯我的用戶由MVC Identity生成的ID是DB中的字符串。我會仔細檢查一下。 – user2330270 2014-08-30 13:18:51