Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c语言中的列表按特定搜索词获取索引_C# - Fatal编程技术网

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:如果你一开始就明确了这一点,那就太好了。