사전의 값 목록을 배열로 바꾸는 가장 효율적인 방법은 무엇입니까?
나는이있는 경우 예를 들어, Dictionary
곳 Key
이다 String
와 Value
이다 Foo
, 나는 싶어Foo[]
VS 2005, C # 2.0을 사용하고 있습니다.
답변:
// dict is Dictionary<string, Foo>
Foo[] foos = new Foo[dict.Count];
dict.Values.CopyTo(foos, 0);
// or in C# 3.0:
var foos = dict.Values.ToArray();
using System.Linq;
linq를 사용하려면 다음을 시도해보세요.
Dictionary<string, object> dict = new Dictionary<string, object>();
var arr = dict.Select(z => z.Value).ToArray();
어느 것이 더 빠르거나 더 좋은지 모르겠습니다. 둘 다 나를 위해 일합니다.
dict.Values.ToArray()
동일한 작업을 수행하지만 델리게이트를 통해 각 값을 구체화하는 오버 헤드가 없습니다.
요즘에는 LINQ를 사용할 수있게되면 사전 키와 해당 값을 단일 문자열로 변환 할 수 있습니다.
다음 코드를 사용할 수 있습니다.
// convert the dictionary to an array of strings
string[] strArray = dict.Select(x => ("Key: " + x.Key + ", Value: " + x.Value)).ToArray();
// convert a string array to a single string
string result = String.Join(", ", strArray);