我需要在c#
中对列表的数据进行分组例如:我在列表c#
中有这样的数据我有一个名为information.cs的类,其中包含这些属性名称,school,parent
前数据
name school parent
kumar fes All
manju fes kumar
anu frank kumar
anitha jss All
rohit frank manju
anill vijaya manju
vani jss kumar
soumya jss kumar
madhu jss rohit
shiva jss rohit
vanitha jss anitha
anu jss anitha
现在将此作为输入我希望使用分层数据格式化输出 当父母全部表示它是最高级别 kumar fes全部。 我需要做的是我需要创建一个对象[0],然后在列表中检查kumar是否存在作为列表中的父项(如果存在)然后将这些项目添加为对象[0]作为父项
i need to create one more oject under
**manju fes kumar
anu frank kumar**
我想要做的是迭代列表和D然后根据
检查父级别命名学校家长
kumar fes All -->obj[0]
manju fes kumar -->obj1[0]
anu frank kumar -->obj1[1]
对于obj1 - > obj [0]将是这样的父母我需要genarte列表或观察类
anitha jss All-->obj[1]
vanitha jss anitha -->obj1[0]
anu jss vanitha -->obj2[0]
这里 obj2 [0] - > obj1 [0] - > obj [1] 将是父母
像这样我需要创建一个列表或观察类希望我的问题清楚我正在尝试问你的人。 我想知道如何创建一个观察类。 任何帮助都会非常棒。希望我的问题很清楚
答案 0 :(得分:1)
// Load data.
string[][] data = new string[][] {
new string[] { "kumar", "fes", "All" },
// etc.
};
ICollection<Information> infoData = data.Select(new Information(data)); // or however you load data.
// Find children of each node.
foreach(var info in infoData) {
info.Children = infoData.Where(other => other.Name == info.Parent).ToList();
}
var rootChildren = infoData.Where(other => other.Name == "All");
答案 1 :(得分:0)
基于具有这样的具体类
,这可能对你有用class Person
{
public string Name { get; set; }
public string School { get; set; }
public string Parent { get; set; }
public List<Person> Children { get; set; }
}
将人员加载到列表中,然后对其进行迭代以找到任何给定人员的子女。
foreach (Person person in people)
{
person.Children = people.Where(p => p.Parent == person.Name).ToList();
}
然后,您可以与“主要”父母一起工作。
var parents = people.Where(p => p.Parent == "All"); // .ToList() if you need a concrete list