Hier ist ein Beispiel ohne LINQ um eine List<KeyValuePair>> zu durchsuchen indem du die Liste durchläufst und die Werte vergleichst.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<KeyValuePair<string, int>> keyValuePairList = new List<KeyValuePair<string, int>>()
{
new KeyValuePair<string, int>("Wien", 1),
new KeyValuePair<string, int>("Bregenz", 2),
new KeyValuePair<string, int>("Graz", 3)
};
// Suche nach Key
string searchKey = "Bregenz";
KeyValuePair<string, int> foundByKey = default;
foreach (var kvp in keyValuePairList)
{
if (kvp.Key == searchKey)
{
foundByKey = kvp;
break;
}
}
if (!foundByKey.Equals(default(KeyValuePair<string, int>)))
{
Console.WriteLine($"Gefunden: Key = {foundByKey.Key}, Value = {foundByKey.Value}");
}
else
{
Console.WriteLine("Key nicht gefunden.");
}
// Suche nach Value
int searchValue = 3;
KeyValuePair<string, int> foundByValue = default;
foreach (var kvp in keyValuePairList)
{
if (kvp.Value == searchValue)
{
foundByValue = kvp;
break;
}
}
if (!foundByValue.Equals(default(KeyValuePair<string, int>)))
{
Console.WriteLine($"Gefunden: Key = {foundByValue.Key}, Value = {foundByValue.Value}");
}
else
{
Console.WriteLine("Value nicht gefunden.");
}
}
}