cách dễ nhất và phần nào hiệu quả để chuyển đổi một cấu trúc phẳng là gì:LINQ: Chuyển đổi cơ cấu phẳng để thứ bậc
object[][] rawData = new object[][]
{
{ "A1", "B1", "C1" },
{ "A1", "B1", "C2" },
{ "A2", "B2", "C3" },
{ "A2", "B2", "C4" }
// .. more
};
thành một cấu trúc thứ bậc:
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; }
}
kết quả sẽ giống như
này// pseudo code which describes structure:
result =
{
new X() { A = "A1", B = "B1", Cs = { "C1", "C2" } },
new X() { A = "A2", B = "B2", Cs = { "C3", "C4" } }
}
Tốt hơn là sử dụng các phương pháp mở rộng LINQ. Mục tiêu lớp X
có thể được thay đổi (ví dụ: một công khai setter cho Danh sách), chỉ khi không thể/hữu ích như bây giờ.
bạn cần một số loại nhóm bởi – Andrey
@Andrey, vâng, đó là một nhóm bởi 'A' và' b' và tổng hợp các 'Cs' vào một danh sách. –