我試圖得到一個字符串列的最大諸如結束 - A1 A2 A3 ...LINQ的 - 得到的字符串的最大與整數
但當最大數量爲10或更高 - 的linq返回a9作爲最大值。爲什麼?
我該如何解決這個問題?
的代碼 -
from d in db.Documents.OrderByDescending(d => d.Number)
Where (.....)
Select d.Number)
.FirstOrDefault();
提前感謝!
我試圖得到一個字符串列的最大諸如結束 - A1 A2 A3 ...LINQ的 - 得到的字符串的最大與整數
但當最大數量爲10或更高 - 的linq返回a9作爲最大值。爲什麼?
我該如何解決這個問題?
的代碼 -
from d in db.Documents.OrderByDescending(d => d.Number)
Where (.....)
Select d.Number)
.FirstOrDefault();
提前感謝!
你不能正常LINQ做什麼,如果你想與字母數字值進行比較,你應該做這樣的事情,
static void Main(string[] args)
{
List<string> vals = new List<string>();
vals.Add("a1");
vals.Add("a11");
vals.Add("a41");
vals.Add("a13");
vals.Add("a12");
vals.Add("a9");
var result = vals.OrderByDescending(x => orderNumbers(x));
}
public static string orderNumbers(string input)
{
return Regex.Replace(input, "[0-9]+", match => match.Value.PadLeft(10, '0'));
}
是否有助於解決您的問題? – Sajeetharan
存在問題:它會引發異常:「notsupportedexception」。該代碼可以很好地適用於您的示例,但在我的示例中卻不適用。 var result = documents.OrderByDecending(x => ordernumbers(x))。其中(x.id == user.id).max(); –
可能你需要投 – Sajeetharan
'1 < 9' ==>'A10
Ofiris
輸入字符串 –