可以使用IndexOf搜索List <struct>中的单个字段吗?

时间:2015-08-29 22:48:14

标签: c# list struct indexof

在C#中,我有一个List,其中someStruct由String和int组成。我希望能够找到匹配特定字符串的条目。是否存在可以执行此操作的IndexOf(),或者我是否必须使用for循环并检查每个条目的字符串字段以进行匹配?

3 个答案:

答案 0 :(得分:3)

您可以使用Linq,

var yourItem = list.FirstOrDefault(entry=>entry.SomeProperty=="SomeValue"); // or list.First

您还可以使用列表

Find方法
var yourItem = list.Find(entry=>entry.SomeProperty=="SomeValue");

答案 1 :(得分:0)

您可以通过List<T>

FindIndex方法执行此操作
var list = new List<Item>();
    list.Add(new Item { Id = 1, Data = "Test1" });
    list.Add(new Item { Id = 2, Data = "Test2" });
    var index = list.FindIndex(x => x.Id == 2); //second scenario FindIndex(x=> x.Data == "Test2");

Item的位置:

public struct Item
{
    public int Id { get; set; }
    public string Data { get; set; }
}

答案 2 :(得分:0)

如果您正在查找字符串并返回id

,则无需使用索引
[(0, 0, 0, 0),
 (0, 0, 0, 1),
 (0, 0, 1, 0),
 (0, 0, 1, 1),
 (0, 1, 0, 0),
 (0, 1, 0, 1),
 (0, 1, 1, 0),
 (0, 1, 1, 1),
 (1, 0, 0, 0),
 (1, 0, 0, 1),
 (1, 0, 1, 0),
 (1, 0, 1, 1),
 (1, 1, 0, 0),
 (1, 1, 0, 1),
 (1, 1, 1, 0),
 (1, 1, 1, 1)]