gpt4 book ai didi

c# - 使用 List.Any() 查找字符串是否包含项目以及查找匹配项目?

转载 作者:行者123 更新时间:2023-11-30 14:07:29 25 4
gpt4 key购买 nike

我有一个字符串列表,可以将其视为“过滤器”。

例如:

List<string> filters = new List<string>();
filters.Add("Apple");
filters.Add("Orange");
filters.Add("Banana");

我有另一个字符串列表,其中包含句子。

例子:

List<string> msgList = new List<string>();
msgList.Add("This sentence contains the word Apple.");
msgList.Add("This doesn't contain any fruits.");
msgList.Add("This does. It's a banana.");

现在我想找出 msgList 中的哪些项目包含水果。为此,我使用以下代码:

foreach(string msg in msgList)
{
if(filters.Any(msg.Contains))
{
// Do something.
}
}

我想知道,在 Linq 中有没有一种方法可以使用类似于 List.Any() 的东西,我可以在其中检查 msgList 是否包含水果,如果包含,还可以获取与查询匹配的水果。如果我能在“过滤器”中获得匹配索引,那应该没问题。也就是说,对于循环的第一次迭代,它应该返回 0('Apple' 的索引),对于第二次迭代返回 null 或类似负值的东西,对于第三次迭代它应该返回 2('Banana' 的索引) .

我在 SO 和 Google 中四处查看,但找不到我要找的东西。

最佳答案

你想要FirstOrDefault而不是任何。

FirstOrDefault 将返回第一个匹配的对象(如果找到),如果未找到则返回默认值(通常为 null)。

关于c# - 使用 List<string>.Any() 查找字符串是否包含项目以及查找匹配项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597033/

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