1

我有一个 HashSet,其中包含必须选择的项目的列表 int int ids。

HashSet<int> SelectedItems = new HashSet<int>()

项目的完整列表由 LINQ to SQL 语句加载。我将填充以下内容的 ObservableCollection:

public class DataItem
{
    public int Id { get; private set; }
    public name String { get; private set; }
    public bool IsSelected { get; set; }
}

如果Id在HashSet中,则IsSelected属性必须设置为true,否则必须设置为false;

这是我的 LINQ 查询:

var items =
    from c in itemsContext.DataItems
    where (c.Latest == true)
    select c;

如何将 HashSet 加入到上述查询中以达到我想要的结果?

谢谢

PS:很抱歉,但我不知道为什么代码块格式不正确。

4

2 回答 2

3

如果我正确理解了您的问题,即与内存中的选定项相对应的数据项...然后使用包含...

from dataItem in context.DataItems
where dataItem.Latest && SelectedItems.Contains(dataItem.Id)
select dataItem;
于 2012-05-29T08:32:55.503 回答
0

这是我想出的解决方案:

from dataItem in context.DataItems
where dataItem.Latest
select new {dataItem.Id,dataItem.Name,IsSelected=SelectedItems.Contains(dataItem.Id)};

感谢您为我指明正确的方向。

于 2012-05-29T11:42:30.163 回答