求一个LINQ的写法

wfkmu 2014-03-27 04:27:27
我有2个list<T>里面的内部结构是一样的。
假如:
No Time
list<1>: A 2014-03-27
B 2014-03-28
C 2014-03-29

list<2> B 2014-09-09
D 2014-08-08

希望得到的数据为:
A 2014-03-27-""
B 2014-03-27-2014-09-09
C 2014-03-29-""
D ""-2014-08-08
...全文
44 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2014-03-27
  • 打赏
  • 举报
回复
void Main()
{
	var list1=new List<demo>
	{
		new demo{NO="A",Time="2014-03-27"},
		new demo{NO="B",Time="2014-03-28"},
		new demo{NO="C",Time="2014-03-29"},
	};
	
	var list2=new List<demo>
	{
		new demo{NO="B",Time="2014-09-09"},
		new demo{NO="D",Time="2014-08-08"}, 
	};
	
	var result=list1.Concat(list2).GroupBy(l=>l.NO)
								  .Select(g=>new demo{ NO=g.Key,Time=g.Count()==1?g.First().Time+"-\"\"":string.Join("-",g.Select(x=>x.Time).ToArray())});
	 
}
class demo
{
   public string NO{get;set;}
   public string Time{get;set;}
}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧