gpt4 book ai didi

c# - 在 C# 中,如何使用另一个列表的 StartsWith() 条件筛选列表?

转载 作者:太空狗 更新时间:2023-10-29 19:56:59 25 4
gpt4 key购买 nike

假设我有一个字符串列表:

var searchList = new List<string>();
searchList.Add("Joe"):
searchList.Add("Bob");

我还有另一个列表

var fullNameList = new List<string>();
fullNameList.Add("Joe Thompson"):
fullNameList.Add("Bob Jones");
fullNameList.Add("Bob Smith");
fullNameList.Add("Billy Smith");
fullNameList.Add("Joe Williams");

我现在想根据 fullNameList 是否存在于搜索列表中来过滤它,但我没有进行直接匹配,而是进行“开头为”匹配。所以在我的示例中,过滤后我希望这是结果

"Joe Thompson"
"Bob Jones"
"Bob Smith"
"Joe Williams"

(如您所见,以 Billy 开头的记录未包含在内,因为它未以搜索列表中的任何项目开头)

我可以像这样“手动”执行此操作:

 var resultList = fullNameList.Where(r=> r.StartsWith("Joe") || r.StartsWith("Bob"));

但我希望它是动态的(因为将来可能会在搜索列表中添加更多项目)。

我可以像这样循环执行此操作:

 var resultsList = new List<string>();

foreach (var item in searchList)
{
resultsList.AddRange(fullNameList.Where(r=>r.StartsWith(item));
}

但想看看是否可以在列表上执行 Startswith,而不是在单行 linq 代码中执行单个字符串?

最佳答案

var resultList = fullNameList.Where(r => searchList.Any(f=>r.StartsWith(f)));

关于c# - 在 C# 中,如何使用另一个列表的 StartsWith() 条件筛选列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29577639/

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