我有一个由以下元素组成的数组:
var schools = new [] {
new object[]{ new[]{ "1","2" }, "3","4" },
new object[]{ new[]{ "5","6" }, "7","8" },
new object[]{ new[]{ "9","10","11" }, "12","13" }
};
我试图展平的真正对象是将数据从 CSV 导入数组数组,然后将其加入字段值:
var q =
from c in list
join p in vocatives on c.Line[name1].ToUpper() equals p.first_name.ToUpper() into ps
from p in ps.DefaultIfEmpty()
select new object[] { c.Line, p == null ? "(No vocative)" : p.vocative, p == null ? "(No sex)" : p.sex };
我想展平该字符串数组以获得:
string[] {
new string[]{ "1","2","3","4" },
new string[]{ "5","6","7","8" },
new string[]{ "9","10","11","12","13" }
}
我已经有一个可以循环执行此操作的解决方案,它在性能方面并不那么明智,但它似乎工作正常。
我尝试使用SelectMany但无法提出解决方案。
非常感谢您的反馈;)我尝试过 npo 的回答:
var result = schools.Select(z => z.SelectMany(y=> y.GetType().IsArray
? (object[])y : new object[] { y })
);
但是 CSVwriter 类方法只接受显式类型:
IEnumerable<string[]>
那么如何在linq中做到这一点,我试图:
List<string[]> listOflists = (List<string[]>)result;
InvalidCastException但不幸的是,没有去,出现了。
心有法竹
收到一只叮咚
慕神8447489
肥皂起泡泡
随时随地看视频慕课网APP
相关分类