Speak.Me Учить иностранные слова

C#: кортежи (Tuple)

Кортежи (Tuple) — множество обобщенных классов для хранения наборов элементов с разными типами:

Каждый из них имеет свойства только для чтения с именами Item1, Item2 и т.д. (по одному для каждого параметра типа.

Создать экземпляр кортежа можно либо с помощью его конструктора, либо с помощью статического метода Tuple.Create:

После этого можно обращаться к хранящимся в кортеже данным с помощью свойств Item*:

Кортежи являются классами и следовательно ссылочными типами. По этой причине сравнение двух экземпляров кортежей с помощью оператора == вернет false. Метод Equals, напротив, перегружен  и выполняет сравнение каждого элемента кортежа.

Кортежи реализуют интерфейс IStructuralEquatable, поэтому в метод Equals можно дополнительно передать компаратор.