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