Can I use a TryParse inside Linq Comparable?

后端 未结 5 1470
野趣味
野趣味 2020-12-03 10:44

A sort of:

Documenti = Documenti
    .OrderBy(o => string.IsNullOrEmpty(o.Note))
    .ThenBy(o => Int32.TryParse(o.Note))
    .ToList();
5条回答
  •  Happy的楠姐
    2020-12-03 11:34

    C# 7 has some new features that make this even easier

    var ints = from a in str.Split(',').Select(s=> new { valid = int.TryParse(s, out int i), result = i })
               where  a.valid
               select a.result;
    

    or as you are asking specifically about sorting

    var ints = from a in str.Split(',')
               orderby (int.TryParse(s, out int i) ? i : 0 )
               select a.result;
    

提交回复
热议问题