Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从对象列表到数组中获取多个属性?_C#_Linq - Fatal编程技术网

C# 如何从对象列表到数组中获取多个属性?

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

是否有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 - 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);
});