c# – Linq:将平面结构转换为分层结构

c# – Linq:将平面结构转换为分层结构,第1张

概述转换平面结构最简单有效的方法是什么? object[][] rawData = new object[][] { { "A1", "B1", "C1" }, { "A1", "B1", "C2" }, { "A2", "B2", "C3" }, { "A2", "B2", "C4" } // .. more }; 成层次结构: class X{ public X 转换平面结构最简单有效的方法是什么?
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:将平面结构转换为分层结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存