Ham*_*m3d 1 c# linq collections
我有两个类定义如下:
class Foo
{
public string name {get; set;}
public long number {get; set;}
}
class Bar
{
//some properties
public string otherName {get; set;}
public long otherNumber {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
如何IEnumerable将这两种类型的两个序列组合成一个新的匿名类型,该类型由两个类的属性组合而成.
例:
Foo:
name1 - number1
name2 - number2
name3 - number3
Bar:
otherName1 - otherNumber1
OtherName2 - otherNumber2
Desired Result:
name1 - number1
name2 - number2
name3 - number3
otherName1 - otherNumber1
OtherName2 - otherNumber2
Run Code Online (Sandbox Code Playgroud)
我Zip在linq中试过功能但没有运气.
用这个:
var result = efoo.Select(x => new { x = x.name, y = x.number })
.Concat(ebar.Select(x => new { x = x.otherName, y = x.otherNumber }));
Run Code Online (Sandbox Code Playgroud)
result是匿名类型的枚举具有x,y作为属性.您可以使用正常foreach循环遍历此序列:
foreach (var i in result)
{
string name = i.x;
long number = i.y;
}
Run Code Online (Sandbox Code Playgroud)