Как преобразовать возвращаемое значение List.Take (1);

у меня есть такой код:

List<double[]>t;
for(...){ t.Add(elem)}; 

где 'elem' - это ' double [] d ; for ( int i = 0 ; i < t . Length ; ++ i ) { d = t . Взять ( 1 ); // взять первый элемент t . RemoveAt ( 0 ); // удаляем первый элемент, да? } ', конечно;

Далее я хочу взять все элементы списка:

IEnumerable

но метод Take () return 'double []'; как конвертировать?

c#,ienumerable,

-1

Ответов: 4


1 принят

Takeвозвращает значение IEnumerableof double[], которое при вызове ToArray()возвращает double[][]тип, который, вероятно, не соответствует тому, что вы ищете.

Разве вы не ищете простой t[0]способ получить первый элемент (или даже лучше t.First())?


Вы должны использовать First вместо Take (1)

t.First()

3

Ты можешь использовать:

 t.First();

который возвращает 1-й элемент коллекции, а .Take(n)первые n элементов возвращает коллекцию.


Вам не нужен LINQ, если вы просто хотите взять первый элемент списка и затем удалить его.

for (int i = 0; i < t.Length; ++i) {
    double[] d = t[0];
    t.RemoveAt(0);

    // ...
}

В зависимости от того, что вы делаете, вы также можете обработать весь список перед его очисткой.

foreach (double[] d in t) {
    // ...
}

t.Clear();
C #, IEnumerable,
Похожие вопросы