我有一个基于struct
的Listpublic 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并且在列表中包含他的值或索引。
我需要它,因为我必须比较两个不同长度的列表,并检查它们是否具有相同的值。
答案 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
如果它仍然无法帮助您澄清样品。