найти индексы foreach Элемент списка кортежей равен данному элементу - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу найти индексы foreach Item1 из Список списков значения равны данной строке "png" .

Но я не мог '1009 * условие foreach было бы правильным для его поиска. Любая помощь была бы хороша ..

List<Tuple<string, string>> fileConverterList = new List<Tuple<string, string>>()
        {
            Tuple.Create("png","jpg"),
            Tuple.Create("jpg","bmp"),
            Tuple.Create("png","bmp")
        };

string = "png";

foreach (int i in /* fileConverterList condition */)
        {
            // Provided conditions must be: i = 0 and i = 2. That means;
            // fileConverterList[0].Item1 equals to "png" and
            // fileConverterList[2].Item1 equals to "png"
        }

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете использовать LINQ, чтобы найти все индексы, подобные этому:

var indexes = myTuples.Select((t, i) => new { t, i })
                      .Where(x => x.t.Item1 == "png")
                      .Select(y => y.i);

Вот оно в приложении для демонстрационной консоли:

    static void Main(string[] args)
    {
        var myTuples = new List<Tuple<string, string>>
        {
            new Tuple<string, string>("png", "jpg"),
            new Tuple<string, string>("jpg", "bmp"),
            new Tuple<string, string>("png", "bmp")
        };

        var indexes = myTuples.Select((t, i) => new { t, i })
                              .Where(x => x.t.Item1 == "png")
                              .Select(y => y.i);

        Console.WriteLine("Indexes:");
        foreach (var index in indexes)
        {
            Console.WriteLine("Index: " + index);
        }

        Console.ReadLine();
    }

Результаты:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...