-1

我有一本字典

Dictionary<string,int> infoDic

和一份清单

List<Info> infoList

Info 对象有 2 个属性:InfoText 和 InfoInt

我想检查 infoList 是否有任何 Info 对象,其中 Info.InfoText 等于 infoDic.Key,如果是,我想将 Info.InfoInt 实例化为 infoDic.Value

编辑

   var test=  from t in infoList
         join x in infoDic
         on t.InfoText equals x.Key
         select new Info {InfoText =t.InfoText , InfoInt=x.Value }

有什么帮助吗?泰

4

3 回答 3

1

我想检查 infoList 是否有任何 Info 对象,其中 Info.InfoText 等于 infoDic.Key

可能是这样的:

var ifAny = infoList.Any(info=>infoDic.ContainsKey(info.InfoText);
于 2013-07-09T09:20:37.697 回答
1
// IEnumerable<Info>
var items = infoList.Where(i => infoDic.ContainsKey(i.InfoText))
                    .Select(e => new Info
                            {
                                InfoInt = infoDic[e.InfoText],
                                InfoText = e.InfoText
                            });
于 2013-07-09T09:25:22.413 回答
0
bool contains = infoList.Any(i => infoDic.ContainsKey(i.InfoText));

但是由于您的第二个要求:

Info info = infoList.FirstOrDefault(i => infoDic.ContainsKey(i.InfoText));
if(info != null)
{
    infoDic[info.InfoText] = info.InfoInt;
    //or the other way around(it's not that clear)
    info.InfoInt = infoDic[info.InfoText];
}
于 2013-07-09T09:20:45.697 回答