2011-07-01 43 views
5

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ớ

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

+0

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

2

Xem DataTable

+0

Điều đó thật nhanh. Cảm ơn. Tôi đã từng nghĩ rằng DataTable chỉ có nghĩa là cho cơ sở dữ liệu và các công cụ. – Steven

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 } 
}; 
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.

Các vấn đề liên quan