developer tip

Dictionary.keyscollection을 문자열 배열로 변환

optionbox 2021. 1. 11. 08:02
반응형

Dictionary.keyscollection을 문자열 배열로 변환


나는 a가 Dictionary<string, List<Order>>있고 배열의 키 목록을 갖고 싶습니다. 하지만 내가 선택할 때

string[] keys = dictionary.Keys;

이것은 컴파일되지 않습니다.

KeysCollection문자열 배열 로 어떻게 변환 합니까?


.NET 3.5 이상 ( using System.Linq;)을 사용한다고 가정합니다 .

string[] keys = dictionary.Keys.ToArray();

그렇지 않으면 CopyTo 메서드를 사용하거나 루프를 사용해야합니다.

string[] keys = new string[dictionary.Keys.Count];
dictionary.Keys.CopyTo(keys, 0);

dictionary.Keys.CopyTo (keys, 0);

배열이 필요하지 않은 경우 (보통 필요하지 않음) 키를 반복 할 수 있습니다.


키가 문자열 유형이 아닌 경우 이것을 사용하십시오. LINQ가 필요합니다.

string[] keys = dictionary.Keys.Select(x => x.ToString()).ToArray();

또는 편리한 일반 확장 ...

    public static T2[] ToValueArray<T1, T2>(this Dictionary<T1, T2> value)
    {
        var values = new T2[value.Values.Count];
        value.Values.CopyTo(values, 0);

        return values;
    }

불행히도 나는 이것을 확인하기 위해 근처에 VS가 없지만 다음과 같은 것이 작동 할 것이라고 생각합니다.

var keysCol = dictionary.Keys;
var keysList = new List<???>(keysCol);
string[] keys = keysList.ToArray();

어디 ??? 키 유형입니다.

참조 URL : https://stackoverflow.com/questions/1621351/convert-dictionary-keyscollection-to-array-of-strings

반응형