Mam tablicę liczb całkowitych w postaci wyrażenie:Konwersja string [] int [] w jednej linii kodu przy użyciu LINQ
var arr = new string[] { "1", "2", "3", "4" };
muszę tablicę liczb całkowitych „prawdziwych”, aby go popchnąć dalej:
void Foo(int[] arr) { .. }
próbowałem rzucać int i to oczywiście nie powiodło się:
Foo(arr.Cast<int>.ToArray());
mogę zrobić dalej:
var list = new List<int>(arr.Length);
arr.ForEach(i => list.Add(Int32.Parse(i))); // maybe Convert.ToInt32() is better?
Foo(list.ToArray());
lub
var list = new List<int>(arr.Length);
arr.ForEach(i =>
{
int j;
if (Int32.TryParse(i, out j)) // TryParse is faster, yeah
{
list.Add(j);
}
}
Foo(list.ToArray());
ale oba wygląda brzydko.
Czy istnieją inne sposoby wykonania tego zadania?
Co jest nie tak z prostą iteracją w jednej kolekcji, konwersją wartości i dodaniem jej do drugiej? Wydaje mi się to całkiem jasne w intencji. –
W przeciwnym razie http://msdn.microsoft.com/en-us/library/73fe8cwf.aspx –
Zgadnij, że powinienem opublikować odpowiedź, ponieważ taka była zaakceptowana sugestia :-) –