2013-02-27 2 views
5

List를 클래스의 속성으로 만들고 목록을 정의 할 때 키/값 쌍을 설정하려고합니다. 원래 구조를 사용하고 있었지만 이상적인 솔루션이 아니므로 목록으로 변경했습니다. 문제는 구문에 오류가 발생했습니다.키/값 쌍 설정

아이디어가 있으십니까?

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>[] 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
+0

을 추측에, 오류를 알지 못하는 사이에 첫 줄 끝의'[]'쌍 (첫 번째 KeyValuePair 뒤의';'char 일 수도 있고','여야합니다. 코드를 복사하여 붙여 넣지 않고도 오류를 제공 할 수 있습니까? –

답변

9

내가 모르는 뭔가가있어,하지만 난 대신
그래서 간단한 사전을 사용하는 것입니다 ....

Dictionary<string, string>formData = new Dictionary<string, string> 
{ 
    {"lsd", "first"}, 
    {"charset", "second"} 
};  

후 다음 방법을 사용

foreach(KeyValuePair<string, string>k in formData) 
{ 
    Console.WriteLine(k.Key); 
    Console.WriteLine(k.Value); 
} 
.... 
if(formData.ContainsKey("lsd")) 
    Console.WriteLine("lsd is already in"); 
....  
string v = formData["lsd"]; 
Console.WriteLine(v); 
+0

저는 C#을 사용하지 않았거나 프로그래밍 된 프로그램을 1 년 이상 사용하지 않았습니다. 그러나 확실히 더 나은 솔루션입니다. –

0

세 번째 줄에 세미콜론을 쉼표로 바꾸고 첫 번째 줄에서 대괄호를 제거하십시오.

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>> 
{ 
     new KeyValuePair<String, String>("lsd",""), 
     new KeyValuePair<String, String>("charset", "") 
}; 

덧붙여서 사전으로 변경하면 키로 값을보다 쉽게 ​​찾을 수 있습니다.

0
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>() 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
  1. []에서 []을 제거?
  2. 컬렉션 초기화 프로그램 내의 항목은 쉼표로 구분해야합니다 (,).
0

이 시도

  private List<KeyValuePair<String, String>> formData = new List<KeyValuePair<String, String>> 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
2

을 시도 :

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>> 
{ 
    new KeyValuePair<String, String>("lsd",""), 
    new KeyValuePair<String, String>("charset", "") 
}; 

당신은 당신의 정의에 추가 []했다. 배열을 만들지 않으므로 배열을 만들 필요가 없습니다. 또한 일부 값으로 목록을 초기화 할 때 값은 쉼표 ( ,)로 구분해야합니다. 제 생각에는

, 더 나은 방법은 사용하는 것입니다 Tuple class :

아마
pirvate List<Tuple<string, string>> formData = new List<Tuple<string, string>>() 
{ 
    new Tuple<string, string>("lsd",""), 
    new Tuple<string, string>("charset", "") 
};