我想从json动作结果返回某个对象的Id和Name属性,所以我决定使用KeyValuePair数据类型。
我的问题是如何从linq投影中将数据注入KeyValuePair变量,例如
int id = 100;
string name = "john";
var data = repository.FindById(id);
var result = new KeyValuePair<int, string>();
result = data.Where(c=>c.Name == name)
.Select(x=>.x.Id)
.Select(a=>a.Name).FirstOrDefault();
答案 0 :(得分:3)
您需要在查询中Select
KeyValuePair
。
int id = 100;
string name = "john";
var data = repository.FindById(id);
var result = data.Where(c=>c.Name == name)
.Select(x => new KeyValuePair<int,string>(x.Id, x.Name))
.FirstOrDefault();
答案 1 :(得分:0)
明确的方式 - 可能更好的可读性 - 将是
var kv = new KeyValuePair<int, string>
{
Key = data.Where(c => c.Name == name).Select(x =>.x.Id).FirstOrDefault(),
Value = data.Where(c => c.Name == name).Select(a => a.Name).FirstOrDefault()
};