linq问题,集合中每个元素取若干个属性、将这些属性按原元素顺序返回

phommy 2013-08-13 04:03:12
测试代码如下


using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var lst = new List<dynamic>
{
new {value1 = 1, value2 = 2},
new {value1 = 3, value2 = 4},
new {value1 = 5, value2 = 6},
};

//我想得到 1-6的序列
var lst2 = lst.Select(v => v.value1).Union(lst.Select(v => v.value2));

//上边这样顺序乱了,我也不想order因为本来是order好的。有没有这样一个方法:集合中每个元素取若干个属性,将这些属性加到结果集中返回的方法?
}
}
}
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2013-08-14
  • 打赏
  • 举报
回复
引用 5 楼 q107770540 的回复:
[quote=引用 4 楼 devmiao 的回复:] [quote=引用 3 楼 q107770540 的回复:] VS中可忽略.Dump()
Dump()是什么?[/quote] LINQPAD 中用于输出结果用的[/quote] 明白了,谢谢督察蜀黍。
q107770540 2013-08-14
  • 打赏
  • 举报
回复
引用 4 楼 devmiao 的回复:
[quote=引用 3 楼 q107770540 的回复:] VS中可忽略.Dump()
Dump()是什么?[/quote] LINQPAD 中用于输出结果用的
devmiao 2013-08-14
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
VS中可忽略.Dump()
Dump()是什么?
q107770540 2013-08-13
  • 打赏
  • 举报
回复
VS中可忽略.Dump()
devmiao 2013-08-13
  • 打赏
  • 举报
回复
var lst2 = lst.Select(v => new int[] { v.value1, v.value2 }).SelectMany(x => x);
q107770540 2013-08-13
  • 打赏
  • 举报
回复
此处如果用dynamic不好实现,因为不支持SelectMany操作。
void Main()
{
	var lst = new List<myClass> {
						  new myClass{value1 = 1, value2 = 2},
						  new myClass{value1 = 3, value2 = 4},
						  new myClass{value1 = 5, value2 = 6},
					  };
	var lst2 = lst.Select(v => string.Format("{0},{1}", v.value1, v.value2)).Union(lst.Select(v => string.Format("{0},{1}", v.value1, v.value2)));
	lst2.SelectMany(x=>x.Split(',')).Dump();
}
class myClass
{
  public int value1{get;set;}
  public int value2{get;set;}
}

110,535

社区成员

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

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

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