C# 如何从对象列表到数组中获取多个属性?
是否有LINQ语句来传输类列表,如C# 如何从对象列表到数组中获取多个属性?,c#,linq,C#,Linq,是否有LINQ语句来传输类列表,如 private class ToSelectMany { public string SelectMe1 { get; set; } public string SelectMe2 { get; set; } public string IgnoreMeString { get; set; } public bool IgnoreMeBool { get; set; } } 像这样的数组 [0] "list element 1 - Selec
private class ToSelectMany
{
public string SelectMe1 { get; set; }
public string SelectMe2 { get; set; }
public string IgnoreMeString { get; set; }
public bool IgnoreMeBool { get; set; }
}
像这样的数组
[0] "list element 1 - SelectMe1"
[1] "list element 1 - SelectMe2"
[2] "list element 2 - SelectMe1"
[3] "list element 2 - SelectMe2"
[4] "list element 3 - SelectMe1"
[5] "list element 3 - SelectMe2"
...
我试过了
List<ToSelectMany> elements = GetElements();
string[] elementArray = elements.SelectMany(a => a.ToSelect1, b => b.ToSelect2);
List elements=GetElements();
string[]elementArray=elements.SelectMany(a=>a.ToSelect1,b=>b.ToSelect2);
和一些类似的东西,但它不起作用。您需要为每个元素构建一个包含两个字符串的数组,然后使用
SelectMany
将它们关联起来:
string[] elementArray = elements.Select(
(a, i) => new string[] {
"list elment " + (i + 1) + " - " + a.SelectMe1,
"list elment " + (i + 1) + " - " + a.SelectMe2
}).SelectMany(x => x).ToArray();
或者,对于外观更好的c#6版本:
string[] elementArray = elements.Select(
(a, i) => new string[] {
$"list elment {i+1} - {a.SelectMe1}",
$"list elment {i+1} - {a.SelectMe2}"
}).SelectMany(x => x).ToArray();
您需要为每个元素构建一个包含两个字符串的数组,然后使用
SelectMany
将它们关联起来:
string[] elementArray = elements.Select(
(a, i) => new string[] {
"list elment " + (i + 1) + " - " + a.SelectMe1,
"list elment " + (i + 1) + " - " + a.SelectMe2
}).SelectMany(x => x).ToArray();
或者,对于外观更好的c#6版本:
string[] elementArray = elements.Select(
(a, i) => new string[] {
$"list elment {i+1} - {a.SelectMe1}",
$"list elment {i+1} - {a.SelectMe2}"
}).SelectMany(x => x).ToArray();
var i=0;
var list=新列表();
elements.ForEach(p=>{
i++;
列表。添加(“列表元素”+i+“-”+p.SelectMe1);
列表。添加((“列表元素”+i+“-”+p.SelectMe2);
});
var i=0;
var list=新列表();
elements.ForEach(p=>{
i++;
列表。添加(“列表元素”+i+“-”+p.SelectMe1);
列表。添加((“列表元素”+i+“-”+p.SelectMe2);
});