답변:
List<string> keyList = new List<string>(this.yourDictionary.Keys);
yourDictionary
함수에서 파생 된 개체의 일부 인지 또는 매개 변수 이름 인지에 대한 혼란을 없애기 위해 사용됩니다 .
당신은 단지 볼 수 있어야합니다 .Keys
:
Dictionary<string, int> data = new Dictionary<string, int>();
data.Add("abc", 123);
data.Add("def", 456);
foreach (string key in data.Keys)
{
Console.WriteLine(key);
}
모든 키 목록을 얻으려면
using System.Linq;
List<String> myKeys = myDict.Keys.ToList();
System.Linq는 .Net framework 3.5 이상에서 지원됩니다. System.Linq 사용에 문제가 있으면 아래 링크를 참조하십시오.
using System.Linq;
. 무시할 답변을 알아야합니다. 죄송합니다 :)
.ToList()
내가 대답을 찾고 여기 와서 내가 없었에서 작업 한 파일 실현, 그래서 내가 그렇게 많은 시간을 사용했다 오류를 던지고 using System.Linq
:)
Dictionary<string, object>.KeyCollection' does not contain a definition for 'ToList'
Marc Gravell의 답변이 도움이 될 것입니다. myDictionary.Keys
그 구현하는 객체를 반환 ICollection<TKey>
, IEnumerable<TKey>
자신의 제네릭이 아닌 대응.
값에 액세스 할 계획이라면 다음과 같이 사전을 반복 할 수 있다고 덧붙였습니다.
Dictionary<string, int> data = new Dictionary<string, int>();
data.Add("abc", 123);
data.Add("def", 456);
foreach (KeyValuePair<string, int> item in data)
{
Console.WriteLine(item.Key + ": " + item.Value);
}
이 모든 복잡한 답변을 믿을 수 없습니다. 키가 문자열 유형이라고 가정합니다 (또는 게으른 개발자 인 경우 'var'을 사용하십시오).
List<string> listOfKeys = theCollection.Keys.ToList();
using System.linq;
또는 이렇게 :
List< KeyValuePair< string, int > > theList =
new List< KeyValuePair< string,int > >(this.yourDictionary);
for ( int i = 0; i < theList.Count; i++)
{
// the key
Console.WriteLine(theList[i].Key);
}