C# 使用c语言中的列表按特定搜索词获取索引
我的名单如下:C# 使用c语言中的列表按特定搜索词获取索引,c#,C#,我的名单如下: Cat, Green, 10 Cat, Green, 1 Dog, Red, 4 Cat, Blue, 2 每个项目只是列表中一个逗号分隔的字符串元素 我想得到上面列表中包含cat和10或包含cat和2的所有元素的所有索引值。所以基本上我应该得到从列表查询返回的索引值0和3。有人能告诉我怎么做吗?听起来像是你想要的: var query = list.Select((item, index) => new { item, index })
Cat, Green, 10
Cat, Green, 1
Dog, Red, 4
Cat, Blue, 2
每个项目只是列表中一个逗号分隔的字符串元素
我想得到上面列表中包含cat和10或包含cat和2的所有元素的所有索引值。所以基本上我应该得到从列表查询返回的索引值0和3。有人能告诉我怎么做吗?听起来像是你想要的:
var query = list.Select((item, index) => new { item, index })
.Where(pair => pair.item.Name == "Cat" &&
(pair.item.Value == 10 || pair.item.Value == 2))
.Select(pair => pair.index);
假设元素的第一列和第三列的属性为Name和Value
编辑:好的,如果只是处理字符串,可以使用:
var query = list.Select((item, index) => new { item, index })
.Where(pair => pair.item.StartsWith("Cat,") &&
(pair.item.EndsWith(", 10") ||
pair.item.EndsWith(", 2"))
.Select(pair => pair.index);
或者,将列表解析为一个更令人愉快的开始…一种方法是循环遍历列表,并使用string.Contains、string.StartsWith&string.EndsWith或正则表达式来测试当前项是否是您要查找的项。效率不高,但编写起来相当简单。没有名为name或value的属性。猫,绿色,10个条目只是一个逗号分隔的字符串,存储在字符串列表中\@KerryL:如果你一开始就明确了这一点,那就太好了。