Linq 到嵌套列表
Linq to Nested Lists
在 LINQ 查询方面需要一点帮助。我有一个由组件和子组件组成的字符串。我还有一个 LINQ 查询,它可以很好地将组件和子组件拆分为嵌套的通用列表。
List<List<string>> fields = (from a in text.Split(new char[] { '\r' })
select a.Split(new char[] { ',' }).ToList()).ToList();
我现在有一些子组件,它们有自己的子组件,由“-”分隔。我如何修改上面的代码以允许使用第三个分隔符的第三个嵌套列表。已经尝试了一些 LINQ 变体,但无法使其正常工作。我有非常基本的 LINQ 知识。提前致谢。
示例:
component1,component2,component3.1-component3.2-component3.3,component4
component1,component2,component3,component4.1-component4.2-component4.3,component5,component6.1-component6.2
您可以使用以下 Linq 查询来做到这一点
var fields = text.Split('\r')
.Select(a => a.Split(',')
.Select(b => b.Split('-')
.ToList())
.ToList())
.ToList();
或在查询语法中
var fields = (from a in text.Split('\r')
select (from b in a.Split(',')
select b.Split('-').ToList())
.ToList())
.ToList();
请注意,您不必为 Split
方法创建数组,因为它被定义为 params
参数。
在 LINQ 查询方面需要一点帮助。我有一个由组件和子组件组成的字符串。我还有一个 LINQ 查询,它可以很好地将组件和子组件拆分为嵌套的通用列表。
List<List<string>> fields = (from a in text.Split(new char[] { '\r' })
select a.Split(new char[] { ',' }).ToList()).ToList();
我现在有一些子组件,它们有自己的子组件,由“-”分隔。我如何修改上面的代码以允许使用第三个分隔符的第三个嵌套列表。已经尝试了一些 LINQ 变体,但无法使其正常工作。我有非常基本的 LINQ 知识。提前致谢。
示例:
component1,component2,component3.1-component3.2-component3.3,component4
component1,component2,component3,component4.1-component4.2-component4.3,component5,component6.1-component6.2
您可以使用以下 Linq 查询来做到这一点
var fields = text.Split('\r')
.Select(a => a.Split(',')
.Select(b => b.Split('-')
.ToList())
.ToList())
.ToList();
或在查询语法中
var fields = (from a in text.Split('\r')
select (from b in a.Split(',')
select b.Split('-').ToList())
.ToList())
.ToList();
请注意,您不必为 Split
方法创建数组,因为它被定义为 params
参数。