Tôi muốn xây dựng cấu trúc dữ liệu bảng trong bộ nhớ với 4 cột để tôi có thể tra cứu các giá trị dựa trên bất kỳ kết hợp nào của các cột (ví dụ như sử dụng LINQ). Có loại dữ liệu được cài sẵn cho điều này hay tôi phải tự tạo một bản thân (rõ ràng là tôi không thể)?Cấu trúc dữ liệu trong bảng bộ nhớ
5
A
Trả lời
5
Trừ khi bạn có một cái gì đó cụ thể trong tâm trí, tôi sẽ khai báo một loại với 4 thuộc tính với những cái tên thích hợp và các loại, tức là
public class SomethingSuitable {
public int Foo {get;set;}
public string Bar {get;set;}
public DateTime Blap {get;set;}
public float Blip {get;set;}
}
và sử dụng danh sách bất kỳ/mảng/từ điển vv khi cần thiết, hoặc chỉ
data.Single(x => x.Bar == "abc");
, vv
2
3
1
Làm thế nào về đơn giản:
var dataStructure = new[] {
new { col1 = "something", col2 = "something else", col3 = 12, col4 = true },
new { col1 = "ha", col2 = "ha ha", col3 = 356, col4 = false },
new { col1 = "grrr", col2 = "grr grr", col3 = 213, col4 = true }
};
2
Bạn có thể sử dụng một đối tượng DataTable để làm điều đó. Xem: http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/linq_over_dataset_for_csharp_developers.doc
3
Tôi muốn tưởng tượng bạn có thể muốn sử dụng một cái gì đó giống như một List<Tuple<T1,T2,T3,T4>>
1
Bạn có thể sử dụng một DataTable
hoặc thậm chí cư một List<FourColClass>
đó sẽ tuân theo các kiểu dữ liệu của yêu cầu của bạn. FourColClass
sẽ là lớp có thuộc tính làm cột của bạn.
4
Kiểm tra DataTable lớp.
Có khái niệm lập chỉ mục/một số cách để cải thiện truy vấn trên bộ sưu tập cho một số trường nhất định không? Dự đoán của tôi là bạn cần tạo các từ điển với khóa được tạo thành từ các trường truy vấn và kết quả là một tham chiếu đến đối tượng cơ bản có liên quan; nhưng điều đó không cảm thấy sạch sẽ như chỉ đơn giản nói "bộ sưu tập này chứa các đối tượng này; các thuộc tính tôi muốn tối ưu hóa cho các truy vấn là những". – JohnLBevan