首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据C#中的一些标准将list<T>分组到List<List<T>>中

如何根据C#中的一些标准将list<T>分组到List<List<T>>中
EN

Stack Overflow用户
提问于 2017-01-23 00:26:06
回答 3查看 45关注 0票数 0

我有一个数组列表,如下所示:

代码语言:javascript
运行
复制
List<string[]> definitions

  MATERIAL  "STEEL"    TYPE "Steel"    WEIGHTPERVOLUME 7833.414
  MATERIAL  "STEEL"    SYMTYPE "Isotropic"  E 2.038902E+10  
  MATERIAL  "STEEL"  FY 3.515348E+07  FU 4.569952E+07 
  MATERIAL  "STEEL"  HYSTYPE "Kinematic"  SSTYPE "Simple"   
  MATERIAL  "CONC"    TYPE "Concrete"    WEIGHTPERVOLUME 2402.616
  MATERIAL  "CONC"    SYMTYPE "Isotropic"  E 2.531051E+09  U 0.2
  MATERIAL  "CONC"    FC 2812279
  MATERIAL  "CONC"  HYSTYPE "Concrete"  ENERGYDEGFACT 0
  MATERIAL  "OTHER"    TYPE "Other"    WEIGHTPERVOLUME 7833.414
  MATERIAL  "OTHER"    SYMTYPE "Isotropic"  E 2.038902E+10
  MATERIAL  "OTHER"  DESIGNTYPE "OTHER"  
  MATERIAL  "OTHER"  HYSTYPE "Elastic"  IOTENSION 0.01
  MATERIAL  "OTHER"  STRAIN -1 STRESS -1 
  MATERIAL  "OTHER"  STRAIN 0 STRESS 0 POINTID "A"  
  MATERIAL  "OTHER"  STRAIN 1 STRESS 1 

我希望能够在definitions列表之外创建一个这样的列表:

代码语言:javascript
运行
复制
List<List<string[]>> objects

并根据每个数组中的第二个元素分隔列表:

代码语言:javascript
运行
复制
  MATERIAL  "STEEL"    TYPE "Steel"    WEIGHTPERVOLUME 7833.414
  MATERIAL  "STEEL"    SYMTYPE "Isotropic"  E 2.038902E+10  
  MATERIAL  "STEEL"  FY 3.515348E+07  FU 4.569952E+07 
  MATERIAL  "STEEL"  HYSTYPE "Kinematic"  SSTYPE "Simple"  


  MATERIAL  "CONC"    TYPE "Concrete"    WEIGHTPERVOLUME 2402.616
  MATERIAL  "CONC"    SYMTYPE "Isotropic"  E 2.531051E+09  U 0.2
  MATERIAL  "CONC"    FC 2812279
  MATERIAL  "CONC"  HYSTYPE "Concrete"  ENERGYDEGFACT 0


  MATERIAL  "OTHER"    TYPE "Other"    WEIGHTPERVOLUME 7833.414
  MATERIAL  "OTHER"    SYMTYPE "Isotropic"  E 2.038902E+10
  MATERIAL  "OTHER"  DESIGNTYPE "OTHER"  
  MATERIAL  "OTHER"  HYSTYPE "Elastic"  IOTENSION 0.01
  MATERIAL  "OTHER"  STRAIN -1 STRESS -1 
  MATERIAL  "OTHER"  STRAIN 0 STRESS 0 POINTID "A"  
  MATERIAL  "OTHER"  STRAIN 1 STRESS 1 
EN

回答 3

Stack Overflow用户

发布于 2017-01-23 00:31:45

为什么不直接使用GroupBy

代码语言:javascript
运行
复制
var listOfGroups = definitions.GroupBy(x => x.Material);

您将获得一个元素列表,其中包含一个Key和一个分组对象列表。

这是一个similar question

票数 0
EN

Stack Overflow用户

发布于 2017-01-23 00:38:54

而不仅仅是GroupBy数组中的第二个元素:

代码语言:javascript
运行
复制
var groups = definitions.GroupBy(x => x[1]);

这不是你得到的列表,它是IEnumerable<IGrouping<string, string[]>>,但我认为这正是你想要的。

票数 0
EN

Stack Overflow用户

发布于 2017-01-23 00:40:13

尝试使用DataTable和LINQ可以对其进行过滤

代码语言:javascript
运行
复制
DataTable dt=new DataTable();
//Add the data in it
dt.Where() or dt.Select();
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41793314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档