c#在结构化列表中搜索

时间:2018-05-24 13:13:15

标签: c# list indexing struct find

我有一个基于struct

的List
public struct MemoryLocation
{
    public byte address;
    public byte data;
}

public List<MemoryLocation> EEPromCurrList=new List<MemoryLocation>();

我想填写此列表并在此搜索后使用其中一个属性,例如

MemoryLocation tmpMemCurr;
Random rnd = new Random();
for (int i=0;i<10;i++)
{
    tmpMemCurr.address=(byte)rnd.Next(i,100);
    tmpMemCurr.data=(byte)rnd.Next(i,10);
    EEPromCurrList.Add(tmpMemCurr);
}

现在目标应该是在EEPromCurrList中搜索是否存在给定地址,例如8并且在列表中包含他的值或索引。

我需要它,因为我必须比较两个不同长度的列表,并检查它们是否具有相同的值。

1 个答案:

答案 0 :(得分:2)

填写完列表后,您可以使用

进行搜索
//search by address
var memoryLocation=tmpMemCurr.Where(x=>x.address==data to be searched).FirstOrDefault();
//search by data
var memoryLocation=tmpMemCurr.Where(x=>x.d==data to be searched).FirstOrDefault();

如果可用,它会给你相应的memoryLocation,否则为null。

我不确定你是否想索引但是如果你需要它,

var index=tmpMemCurr.FindIndex(x=>x.address==data to be searched); 
//returns 0-based index, else-1

如果它仍然无法帮助您澄清样品。