gpt4 book ai didi

c# - 搜索列表 FirstOrDefault StartsWith fuzzy

转载 作者:行者123 更新时间:2023-11-30 22:01:09 24 4
gpt4 key购买 nike

如果我使用以下代码,我将找到一个以“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”开头的最后一个项目。显然我可以枚举整个列表,但这可能会很慢。什么是快速得到结果的方法?

最佳答案

这里有一个小技巧可以用来做到这一点:

Artist Item = myList.Where(s => !String.IsNullOrEmpty(s))
.OrderBy(x => Math.Abs(x[0] - (int)'X')).FirstOrDefault();

将'X'和x的第一个字符转换为整数,按差的绝对值排序。

关于c# - 搜索列表 FirstOrDefault StartsWith fuzzy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com