C# Как вернуть именованный кортеж List<(int row, string message)>

Я пытаюсь вернуть именованный кортеж из функции и получаю сообщение об ошибке. вот пример кода.

public List<(int row, string message)> IsAnyTagNull()
{
    List<Tuple<int, string>> rows = new List<Tuple<int, string>>();

    for (int row = rowindex; row < (range.RowCount + (rowindex - 1)); row++)
    {
        rows.Add(new Tuple<int, string>(row, "Cell Tag is null of row " + row));
    }
    return  rows
}

Ошибка возврата кода выше

Cannot implicitly convert type 'System.Collections.Generic.List<System.Tuple<int, string>>' to 'System.Collections.Generic.List<(int row, string message)>'

Вы должны определить свой список следующим образом: rows = new List<(int row, string message)>();

Eldar 23.04.2022 12:38

Замените Tuple<int, string> на (int, string)

Anindya Dey 23.04.2022 12:39

Чтобы уточнить, первый — это Tuple<T1, T2>, а второй — ValueTuple<T1, T2>.

41686d6564 stands w. Palestine 23.04.2022 12:47

Как и Timer, .NET определяет версии несколько того, что составляет кортеж. Кортежи значений, например (double, int) t1 = (4.5, 3); (см. ValueTuple<T1,T2> Struct), и то, что я называю «Кортеж объектов», например new Tuple<string, Nullable<int>>("Jack", 78) (см. System.Tuple<T1,T2> Class). Просто чтобы держать вас в напряжении, они оба существуют в пространстве имен System. По крайней мере, несколько Timer имеют собственное пространство имен.

MickyD 23.04.2022 12:52
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
4
40
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Потому что List<Tuple<int, string>> отличается от List<(int row, string message)>

Вы можете попробовать создать коллекцию типа List<(int row, string message)> вместо List<Tuple<int, string>>.

public List<(int row, string message)> IsAnyTagNull()
{
    List<(int row, string message)> rows = new List<(int row, string message)>();
    rows.Add((1, "Cell Tag is null of row "));

    return rows;
}

Вы должны определить свой список следующим образом: var rows = new List<(int row, string message)>();

Тип Tuple<int, string> интерпретируется как (int Item1, string Item2)

Другие вопросы по теме