다음 코드를 사용하여 C # 파일에서 사전을 만들고 있습니다.
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
new
오류 가있는 빨간색 선이 있습니다 .
기능 ‘collection initilializer’는 ISO-2 C # 언어 사양의 일부가 아니므로 사용할 수 없습니다.
아무도 여기서 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
편집 : 좋아, .NET 버전 2를 사용하고있는 것으로 나타났습니다.
답변
간단한 .NET 4.0 콘솔 응용 프로그램에서이 문제를 재현 할 수 없습니다.
static class Program
{
static void Main(string[] args)
{
var myDict = new Dictionary<string, string>
{
{ "key1", "value1" },
{ "key2", "value2" }
};
Console.ReadKey();
}
}
간단한 콘솔 응용 프로그램에서 그것을 재현하려고 시도 할 수 있습니까? 초기화 구문을 지원하는 .NET 버전이 아닌 .NET 2.0 (지원하지 않는) 또는 클라이언트 프로파일 프레임 워크를 대상으로하는 것 같습니다.
답변
C # 6.0을 사용하면 다음과 같은 방법으로 사전을 만들 수 있습니다.
var dict = new Dictionary<string, int>
{
["one"] = 1,
["two"] = 2,
["three"] = 3
};
사용자 정의 유형에서도 작동합니다.
답변
Dictionary
(및 다른 컬렉션) 인라인을 초기화 할 수 있습니다 . 각 멤버는 중괄호로 구성됩니다.
Dictionary<int, StudentName> students = new Dictionary<int, StudentName>
{
{ 111, new StudentName { FirstName = "Sachin", LastName = "Karnik", ID = 211 } },
{ 112, new StudentName { FirstName = "Dina", LastName = "Salimzianova", ID = 317 } },
{ 113, new StudentName { FirstName = "Andy", LastName = "Ruth", ID = 198 } }
};
자세한 내용은 MSDN 을 참조하십시오.
답변
우리가 이런 사전을 가지고 있다고 가정하자
Dictionary<int,string> dict = new Dictionary<int, string>();
dict.Add(1, "Mohan");
dict.Add(2, "Kishor");
dict.Add(3, "Pankaj");
dict.Add(4, "Jeetu");
다음과 같이 초기화 할 수 있습니다.
Dictionary<int, string> dict = new Dictionary<int, string>
{
{ 1, "Mohan" },
{ 2, "Kishor" },
{ 3, "Pankaj" },
{ 4, "Jeetu" }
};
답변
C # 3.0에서 개체 이니셜 라이저가 도입되었습니다. 타겟팅 할 프레임 워크 버전을 확인하십시오.
답변
C # 6.0으로
static class Program
{
static void Main(string[] args)
{
var myDict = new Dictionary<string, string>
{
["Key1"]="Value1",
["Key2"]="Value2"
};
Console.ReadKey();
}
}
답변
