Получить элементы string [] с индексами int [] indexes - PullRequest
4 голосов
/ 16 марта 2012

У меня есть string[], и я хочу получить элементы string[] с индексом, которого, как я знаю, существует , указанному в int[].

string[] stringArray = { "a", "b", "c", "d", "e", "f", "g" };
int[] indices = { 1, 2, 4, 6 };

Отсюда я пытаюсь получить string[], содержащий { "b", "c", "e", "g" }. Предпочтительно использовать лямбда-выражение. Как бы я это сделал?

Ответы [ 6 ]

10 голосов
/ 16 марта 2012

Один из способов сделать это - вот так.

string[] result = indices.Select(i => stringArray[i]).ToArray()
6 голосов
/ 16 марта 2012
indices.Select(i => stringArray[i]);
3 голосов
/ 16 марта 2012
stringArray.Where((x,index) => indices.Contains(index)); 
1 голос
/ 16 марта 2012

Примерно так:

var result= (
    from str in stringArray.Select ((a,i) =>new {a,i})
    where indices.Contains(str.i)
    select str
);
1 голос
/ 16 марта 2012

LINQ: var result = from indice in indices select stringArray[indice]
LAMBDA EXPRESSION: var result = indices.Select(i => stringArray[i])

1 голос
/ 16 марта 2012
foreach( int i in indices){
    string s = stringArray[i]
    //DO stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...