2015-01-12 5 views
-1

3 "열"사전을 만드는 가장 효율적인 방법은 무엇입니까? ID, 이름, 커미션이 필요합니다. DataTable에 던져 넣는 것이 가장 좋을까요? 아니면 너무 부피가 커질까요? 나는 그 이름을 가지고 있으며 ID와위원회를 얻으려면 일단 DB에 가야 만합니다. 즉, 나는 Name 값의 존재에 대해 많은 점검을 할 것입니다. 분명히 존재하지 않는다면 DB에 대한 ID와 Commission을 가져와 레코드를 컬렉션에 추가해야 할 것입니다. 그래서 DataTable? 중첩 된 사전? 다른? 너희들은 어떻게 생각하니?중첩 된 사전 또는 DataTable

감사합니다.

+2

왜 사전을 중첩해야합니까? 하나의 사전 만 있으면됩니다. 왜 'DataTable'을 사용하여 키를 기반으로 값을 검색하겠습니까? 그것은'DataTable'이 무엇을 위해 설계되었는지 전혀 아니며'Dictionary'가 의도 한 것과 정확히 똑같습니다. – Servy

+0

이름으로 검색 할 필요가있는 경우이를 키로 사용하는 사전이 적합하다고 보입니다. – Chris

+2

이름을 키로 사용하여 사전을 작성하고 ID/커미션을 보유 할 클래스 또는 구조체를 정의 하시겠습니까? 만약 당신이 정말로 새로운 클래스 나 구조체를 만드는 것에 불리하면 Tuple을 저장할 수도 있습니다. –

답변

1
public class Element 
{ 
    public string ID {get; set;} 
    public string Name {get; set;} 
    public string Commission {get; set;} 
} 

var data = new Dictionary<string,Element>(); 
data.Add(e.ID,e); //assuming e is of type Element and defined. 
+0

키라고 생각하기 때문에 이름 필드가 정말로 필요하지 않겠지 만 생각이납니다. 감사! – Relevant

+0

데이터베이스에 따라 가장 일반적으로 이름 필드는 고유하도록 제한되지 않습니다. 사전은 모든 키가 고유해야 ID가 최상의 선택이 될 수 있습니다. –

+0

오, 알았어. 나는 단지 이름이 제공되는 엑셀 파일을 읽고 있으므로, 이것을 키로 사용해야 할 필요가 있다고 생각했습니다. 나는 그 이름이 유일하다고 가정했습니다. 하지만 당신 말이 맞습니다. 나는 이것이 안전한 가정인지, 아니면 더 많은 이슈가있을 것인지를 확인해야합니다 :-p thanks! – Relevant

관련 문제