在我的上一个问题中,我建议使用LINQ解决方案。它非常简单。我尝试用类似的方法解决下一个类似但有点差异的问题,但我失败了。
如何更好地制作以下代码
For Each Item As ListViewItem In RoomsListView.Items
For Each Item1 As Room In myBookedRooms
If Item1.UIN = Item.SubItems(1).Text Then
Item.Checked = True
End If
Next
Next
答案 0 :(得分:0)
抱歉 - 可以阅读但不能写VB ......
在C#Linq中,您的查询类似于:
var query = from room in RoomsListView.Items
from bookedRoom in myBookedRooms
where ((Room)bookedRoom).UIN == room.SubItems(1).Text
select room;
foreach (var room in query)
{
room.Checked = true;
}
答案 1 :(得分:0)
您可以使用Join
。这是一个C#
样本:
var itemsToUpdate = RoomsListView.Items
.Cast<ListViewItem>()
.Join(myBookedRooms,
Item => Item.SubItems(1).Text,
Item1 => Item1.UIN,
(Item, Item1) => Item);
foreach (var item in itemsToUpdate)
item.Checked = true;