我正在使用这个LINQ to Entity:
var t1 = (from cn in contracts
join cl in client on cn.Id equals cl.Id
join so in siteObject on cn.Id equals so.ContractId
select new
{
siteObjId = so.Id,
clientId = cl.Id,
}).ToList();
t1有这个清单:
是否有任何优雅的方式使用(例如LINQ)从上面的列表(t1)创建, 这样的新名单:
提前谢谢。
答案 0 :(得分:4)
你可以group by
声明这些项目。对于每个结果项,您可以使用string.Join(separator, collection)
连结结果组,以获得1,2,3
之类的结果。但是,首先,假设您正在使用Linq To Entities,首先尝试执行简单的查询分组值。样本:
var groupResult = (from cn in contracts
join cl in client on cn.Id equals cl.Id
join so in siteObject on cn.Id equals so.ContractId
group cl by cl.Id into g
select new {
ClientId = g.Key,
Result = g
}).ToList();
使用具有groupResult
列表的Linq To Objects,将值连接到字符串中,用于示例:
var t1= (from item in groupResult
select new {
clientId = item.ClientId,
siteObjId = string.Join(",", item.ToList()),
});
答案 1 :(得分:2)
您需要env REDISCLI_HISTFILE=/dev/null redis-cli
运算符:
group by