选择带有linq的Dictionary's List
本文关键字:List Dictionary linq 选择 | 更新日期: 2023-09-27 18:11:48
我有一个c#字典的问题。我想检索List以使用
ErrDict.Where(x => x.Key == kurumVKN).Select(x => x.Value) as List<ErrorModel>;
但是返回null。我怎样才能得到字典的列表?
Dictionary<string,List<ErrorModel> ErrDict = new Dictionary<string,List<ErrorModel>();
if (ErrDict == null)
{
ErrDict = new Dictionary<string, List<ErrorModel>>();
}
List<ErrorModel> listErrModel = ErrDict.Where(x => x.Key == kurumVKN).Select(x => x.Value) as List<ErrorModel>;
if (listErrModel == null)
{
listErrModel=new List<ErrorModel>();
}
listErrModel.Add(errModel);
ErrDict.Remove(kurumVKN);
ErrDict.Add(kurumVKN, listErrModel);
您需要在Select
和SelectMany
之后调用ToList
以平整化返回List<ErrorModel>
列表的查询。试试这个:
var list = ErrDict.Where(x => x.Key == kurumVKN)
.Select(x => x.Value)
.SelectMany(x => x) // we add this to get only a single List<ErrorModel>
.ToList();
试试这个
List<ErrorModel> listErrModel = ErrDict.Where(x => x.Key == kurumVKN)
.SelectMany(x => x.Value)
.ToList<ErrorModel>();
你可以试试这个:
var result = ErrDict.Where(x => x.Key == kurumVKN).Select(x => x.Value).ToList();
为了避免Adam在他的评论中指出的是正确的,你必须把上面的改为下面的:
var result = ErrDict.Where(x => x.Key == kurumVKN).SelectMany(x => x.Value).ToList();
首先,你应该试试
ErrDict.Where(x => x.Key == kurumVKN).SelectMany(x => x.Value).ToList<ErrorModel>();