我有一個字符串的列表,這些字符串包含數字和單詞。Linq - 按號碼然後字母
我想要做的是數字順序它(數字順序),其次是字(排名不分先後)
我的列表中不包含這兩者的搭配......這裏有一個例子
1,5,500,LT,RT,400 - > LINQ - > 1, 5,400,500,LT,RT
這裏是什麼,我有一個例子,它的工作原理,但我想知道是否有更好的寫作方式?
int results = 0;
// Grabs all voltages
var voltage = ActiveRecordLinq.AsQueryable<Equipment>()
.OrderBy(x => x.Voltage)
.Select(x => x.Voltage)
.Distinct()
.ToList();
// Order by numeric
var numberVoltage = voltage
.Where(x => int.TryParse(x, out results))
.OrderBy(x => Convert.ToInt32(x));
// Then by alpha
var letterVoltage = voltage
.Where(x=> !String.IsNullOrEmpty(x))
.Where(x => !int.TryParse(x, out results))
.OrderBy(x => x);
return numberVoltage.Union(letterVoltage)
感謝您的幫助!
爲什麼你保持int解析,電壓沒有定義爲int? – Jimmy 2011-02-25 18:15:12
@Jimmy - Nope,電壓不是定義爲int,因爲它包含一些字,在這種情況下是「LT」。它也被定義爲數據庫中的字符串 – ChickSentMeHighE 2011-02-25 18:17:58