所以我得到了以下代码:
string matchingName = "Bob";
List<string> names = GetAllNames();
if (names.Contains(matchingName))
// Get the index/position in the list of names where Bob exists
是否可以使用几行代码执行此操作,而不是遍历列表以获取索引或位置?
答案 0 :(得分:0)
# cat /proc/<process id from above>/limits
...
答案 1 :(得分:0)
如果您有多个匹配的实例,并希望获得所有索引,则可以使用:
cat foo.txt | gawk '{ printf $0 }'
如果它只是您想要的一个索引,那么这将起作用:
var result = Enumerable.Range(0, names.Count).Where(i => names[i] == matchingName);
如果int result = names.IndexOf(matchingName);
中没有匹配的实例,前一个解决方案将产生一个空枚举,而后者将产生-1。
答案 2 :(得分:0)
如果您想查找单匹配,那么IndexOf
将符合您的目的。
如果您想查找多个匹配项,请考虑:
var names = new List<string> {"Bob", "Sally", "Hello", "Bob"};
var bobIndexes = names.Select((value, index) => new {value, index})
.Where(z => z.value == "Bob")
.Select(z => z.index);
Console.WriteLine(string.Join(",", bobIndexes)); // this outputs 0,3
在Select
中使用(value, index)
可让您访问和元素的索引。