c# – 将Linq查询结果转换为字典

我想使用Linq到SQL添加一些行到数据库,但我想在添加行之前进行“自定义检查”,以知道是否必须添加,替换或忽略收入行。
我想保持客户端和DB服务器之间的流量尽可能低,并最小化查询的数量。

为此,我想获取尽可能少的验证所需的信息,并且只在进程开始时获取一次。

我在想这样做,但显然,它不工作。任何人都有想法?

Dictionary<int, DateTime> existingItems = 
    (from ObjType ot in TableObj
        select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
    )

我想要的最后是一个字典,而不必从TableObject下载整个ObjectType对象。

我也考虑了下面的代码,但我试图找到一个正确的方法:

List<int> keys = (from ObjType ot in TableObj orderby ot.Key select ot.Key).ToList<int>();
List<DateTime> values = (from ObjType ot in TableObj orderby ot.Key select ot.Value).ToList<int>();
Dictionary<int, DateTime> existingItems = new Dictionary<int, DateTime>(keys.Count);
for (int i = 0; i < keys.Count; i++)
{
    existingItems.Add(keys[i], values[i]);
}
尝试使用the ToDictionary method这样:

var dict = TableObj.Select( t => new { t.Key, t.TimeStamp } )
                   .ToDictionary( t => t.Key, t => t.TimeStamp );
翻译自:https://stackoverflow.com/questions/953919/convert-linq-query-result-to-dictionary

转载注明原文:c# – 将Linq查询结果转换为字典