如果我使用以下代码,我将找到以“X”开头的Item.ShowName - 如果存在。
List<Artist> myList = new List<Artist>();
//Fill list with items
Artist Item = myList.FirstOrDefault(x => x.StartsWith("X"));
我的问题是如果没有以“X”开头的Item.ShowName。在那种情况下,我想要最近的匹配,即第一个以“Y”开头的项目或我的列表中带有“W”的最后一个项目。 显然我可以列举整个列表,但这可能很慢。获得结果的快捷方法是什么?
答案 0 :(得分:3)
这是一个可以用来做的小技巧:
Artist Item = myList.Where(s => !String.IsNullOrEmpty(s))
.OrderBy(x => Math.Abs(x[0] - (int)'X')).FirstOrDefault();
将'X'和x的第一个字符转换为整数,按差值的绝对值排序。