我必须列出相同数据模型的项目
列出A
ID Name Address
1 aaa address1
2 bbb address2
3 ccc address3
myList
ID Name Address
1
2
3
我必须检查带有ID的主列表,并从该列表A中获取相应ID的其他值
我如何在linq c#
中执行此操作答案 0 :(得分:4)
您可以通过以下方式执行此操作...........
List<Person> newList = (from master in listMaster
from list in myList
where master.id == list.id
select master).ToList<Person>();
newList包含在myList中具有id的人物信息...............
答案 1 :(得分:2)
这将为列表A中的所有id提供myList中的所有值:
var res = from a in ListA
where myList.contains(a.ID)
select a
答案 2 :(得分:2)
您可以通过linq执行此操作,如下所示:
myList = myList.Select(x=>listA.FirstOrDefault(y=>y.ID == x.ID)??x).ToList()
有效的方法是排序和比较元素,即O(n logn),如果两个列表中的元素都被排序,则为O(n):
listA = listA.OrderBy(x=>x.ID).ToList();
myList = myList.OrderBy(x=>x.ID).ToList();
int index = 0;
foreach(var item in listA)
{
while(index < myList.Count && myList[index].ID < listA.ID)
index++;
if (index > myList.Count)
break;
if (myList[index].ID = item.ID)
{
myList[index] = item;
}
}
答案 3 :(得分:0)
传递id
public ActionResult ListController(int id)
{
//process code
//syntax would be database.items.Select(list => list.ID = id) for checking with the master list for corresponding IDs
}
希望这会给你指路。