object[][] rawData = new object[][] { { "A1","B1","C1" },{ "A1","C2" },{ "A2","B2","C3" },"C4" } // .. more };
成层次结构:
class X{ public X () { Cs = new List<string>(); } public string A { get; set; } public string B { get; set; } public List<string> Cs { get; private set; }}
结果应该是这样的
// pseudo code which describes structure:result ={ new X() { A = "A1",B = "B1",Cs = { "C1","C2" } },new X() { A = "A2",B = "B2",Cs = { "C3","C4" } }}
最好使用linq扩展方法.目标类X可以被更改(例如,列表的公共设置器),只有当现在不可能/有用时.
解决方法 对于这种特殊情况:.GroupBy( x => new { a = x[0],b = x[1] } ) .Select( x => new { A = x.Key.a,B = x.Key.b,C = x.Select( c => c[2] ) })总结
以上是内存溢出为你收集整理的c# – Linq:将平面结构转换为分层结构全部内容,希望文章能够帮你解决c# – Linq:将平面结构转换为分层结构所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)