2012-07-23 3 views
0

가능한 중복 :
C# Storing string,int,string in an accessable variable<int, string, int> 값은 어떻게 처리합니까?

나는 C#에서 <int, string , int> 같은 값을 처리 할

. 값을 어떻게 처리합니까?

ID, 이름, 유형이있는 세션에 데이터를 저장하고 싶습니다. 그래서 어떤 컬렉션을 사용해야합니까? "사전"에 대한 도움말을 볼 때 TKey, TValue 만 저장합니다.

+3

무엇을 의미합니까? 더 많은 문제를 설명해주십시오. –

+0

제발 더 정교하게, 당신이 원하는 무엇을, 수집 방법, 무엇 ?? – yogi

+0

ID, 이름, 유형이있는 세션에 데이터를 저장하고 싶습니다. 그래서 어떤 컬렉션을 사용해야합니까? "사전"에 대한 도움말을 볼 때 TKey, TValue 만 저장합니다. –

답변

7

순환에 의해 제안 당신이 Tuple<int, string, int>을 만들 수 있지만, 그것은 당신이 당신 자신의 유형을 만든 경우 이해하기 코드를 더 쉽게 만들 것입니다. 예를 들면 : 당신이 필요로 할 때

public class SessionData 
{ 
    public int Id { get; private set; } 
    public string Name { get; private set; } 
    public int Type { get; private set; } 

    public SessionData(int id, string name, int type) 
    { 
     Id = id; 
     Name = name; 
     Type = type; 
    } 
} 

은 그럼 당신은이 클래스의 인스턴스를 생성, 당신은 Dictionary<string, SessionData> (또는 무엇이든)에 저장할 수 있습니다.

OOP의 주요 작업 중 하나는 관련 데이터를 캡슐화하기위한 고유 한 유형을 만드는 것입니다.

+0

나는 네가 어디에서오고 있는지 확실히 알지만, 실제로 튜플을 읽는 것이 훨씬 쉽다고 생각하는 유일한 사람인가? 범위가 클래스 전용이고 이름 지정이 양호한 한. "SessionData"라는 이름의 것을 읽으려면 클래스의 서명을 찾아 내서 그 안에 무엇이 있는지를 알아야합니다. 튜플을 보면 그냥 선언문을 보도록 요구합니다. 글쎄요, 그것은 자체 논의의 가치가있는 주제라고 생각합니다.) – cwap

+0

.. 음, 그냥 다시 질문을 읽어보십시오; 나는 확실히이 상황에서도 수업을 만들기 위해 갈 것입니다. – cwap

+1

@cwap : 첫 번째 주석에 답하기 위해, 두 번째 주석이 주어질 때 이해할 수있을지라도, 'Tuple '선언은 관련된 데이터 유형만을 알려줍니다. 개별 구성 요소 나 항목 전체의 * 의미 *에 대한 힌트는 제공하지 않습니다. 더 많은 문서가 없다면, 어떤 int 값이 타입이고 어떤 것이 ID인지 어떻게 알 수 있을까요? 명명 된 속성을 사용하면 훨씬 명확하고 오류가 발생하기 쉽습니다. –

2

Tuple<int, string, int>가 작동 할 수 있습니다.

+1

그렇습니다. 그렇지만 OP의 코드는 그들이 자신의 타입을 만든 것보다 읽기가 더 어렵게 만듭니다. –

관련 문제