Элегантный способ объединить несколько коллекций элементов?

Я не обнаружил - в течение почти года - что DataRows Со строгим контролем типов содержат [ColumnName] Пустой указатель () метод.

, Например:

Units.UnitsDataTable dataTable = new Units.UnitsDataTable();

foreach (Units.UnitsRow row in dataTable.Rows)
{
    if (row.IsPrimaryKeyNull())
        //....

    if (row.IsForeignKeyNull())
        //....
}
80
задан John Saunders 20 December 2010 в 21:00
поделиться

1 ответ

Пара методов с помощью Инициализаторов Набора -

принятие этих списков:

var list1 = new List<int> { 1, 2, 3 };
var list2 = new List<int> { 4, 5, 6 };

SelectMany с инициализатором массива (не действительно настолько изящный мне, но не полагается ни на какую функцию помощника):

var combined = new []{ list1, list2 }.SelectMany(x => x);

Определяют расширение списка для, Добавляют, который позволяет IEnumerable<T> в List<T> инициализатор :

public static class ListExtensions
{
    public static void Add<T>(this List<T> list, IEnumerable<T> items) => list.AddRange(items);
}

Затем можно создать новый список, содержащий элементы других как это (он также позволяет единственным объектам быть смешанными в).

var combined = new List<int> { list1, list2, 7, 8 };
1
ответ дан 24 November 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: