My GroupByはうまく機能しています。私は出力にOrder GroupBy Ascベースの2つのプロパティLINQを使用してC#
を取得、私はグループ名
ブラウンカラーブロックをソートする必要があり、グループを表しています。
ブラウンカラーブロック内のレッドカラーボックスは、
- ピーター・ブロック(ブラウンボックス)最初
- ラジ・ブロック(ブラウンボックス)(
- セカンドサニーブロックを来るべき来るべきマネージャを表しブラウンボックス)第三に来る必要があり
ボス(マネージャー)とアシスタントすることにより、各ブロックする必要がありグループ(ボス SIDを持っていません)。 GroupByの後、グループ内の名前はSorted Orderになります。 アシスタント名もソート順になります。
モデル・クラス:
public class Person
{
public int ID { get; set; }
public int SID { get; set; }
public string Name { get; set; }
public string Department { get; set; }
public string Gender { get; set; }
public string Role { get; set; }
}
public class Boss
{
public int ID { get; set; }
public int SID { get; set; }
public string Name { get; set; }
public string Department { get; set; }
public string Gender { get; set; }
public string Role { get; set; }
public List<Person> Employees { get; set; }
}
主な機能ソースコード:
void Main()
{
List<Boss> BossList = new List<Boss>()
{
new Boss()
{
ID = 101,
Name = "Sunny",
Department = "Development",
Gender = "Male",
Role = "Manager",
Employees = new List<Person>()
{
new Person() {ID = 101, SID = 102, Name = "Peter", Department = "Development", Gender = "Male", Role = "Assistant"},
new Person() {ID = 101, SID = 103, Name = "Emma Watson", Department = "Development", Gender = "Female", Role = "Assistant"},
}
},
new Boss()
{
ID = 104,
Name = "Raj",
Department = "Development",
Gender = "Male",
Role = "Manager",
Employees = new List<Person>()
{
new Person() {ID = 104, SID = 105, Name = "Kaliya", Department = "Development", Gender = "Male", Role = "Assistant"},
new Person() {ID = 104, SID = 103, Name = "Emma Watson", Department = "Development", Gender = "Female", Role = "Assistant"},
},
},
new Boss()
{
ID = 102,
Name = "Peter",
Department = "Development",
Gender = "Male",
Role = "Manager",
Employees = new List<Person>()
{
new Person() {ID = 102, SID = 105, Name = "Kaliya", Department = "Development", Gender = "Male", Role = "Assistant"},
new Person() {ID = 102, SID = 103, Name = "Emma Watson", Department = "Development", Gender = "Female", Role = "Assistant"},
}
}
};
List<Person> EmpList = BossList.SelectMany(i =>
new[] {
new Person()
{
ID = i.ID,
SID = i.SID,
Name = i.Name,
Gender = i.Gender,
Department = i.Department,
Role = i.Role
}
}.Concat(i.Employees)
).ToList().GroupBy(s => s.ID).SelectMany(h => h.GroupBy(g => g.SID).SelectMany(u => u.OrderBy(k=> k.Name))).ToList();
}
を私は右のあなたを得るのであれば、あなただけのグループを並べ替えることがしたいですか?あなたが望む結果が得られれば、あなたの写真はどのように見えるかを追加できますか? –
@ Nitro.de - スクリーンの頂点が期待される出力を与えていません。イエロークォートで述べたように、出力画面の変更が必要です。 –