【发布时间】:2017-04-06 13:11:31
【问题描述】:
是否可以使用 LINQ 遍历两个集合?
我有一个 ObservableCollection 我正在尝试填充,目前我只是在使用典型的 foreach 循环。
我使用一个循环遍历 string 数组,然后使用该值检查每个 bool 值是否为真,然后将该值添加到集合中。
public ObservableCollection<StaffInfo> Display = new ObservableCollection<StaffInfo>();
public void MasterDataDisplay()
{
string[] data = new[] {"a", "b", "c"};
foreach (var section in data)
{
var filter = Db.StaffInfos.Where(p => p.Section == section);
foreach (var item in filter)
{
if (item.CurrentStaff == true)
{
Display.Add(item);
}
}
}
}
是否可以用一个 LINQ 查询来做这样的事情?还是我正在做的最好的方法是做到这一点?
【问题讨论】:
-
您不是在遍历集合——您是在查询数据库中的单个值。为什么不将循环转换为单个查询?
-
使用 Join 方法合并两个集合。见 msdn:code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b