Или с помощью Dictionary
вы можете достичь желаемого стиля инициализации
var pairs = new Dictionary<string, string>
{
{ "one", "first" },
{ "two", "second" },
}.ToList();
pairs.Should().BeOfType<List<KeyValuePair<string, string>>>(); // Pass
Обратите внимание, что если позже в коде вы просто перечисляете список пар ключ-значение, то вы можете использовать словарь без явногопреобразование его в список.
var pairs = new Dictionary<string, string>
{
{ "one", "first" },
{ "two", "second" },
}
// later somewhere in the code
foreach(var pair in pairs)
{
Console.WriteLine($"{pair.Key}: {pair.Value}")
}
Если вы используете значения внутри (внутри класса), вы можете использовать кортежи.
private IEnumerable<(string Code, string Name)> GetCountries()
{
yield return ("code", "Earth");
yield return ("code", "Vulkan");
}
Который позже можно использовать более читабельным способом
foreach(var country in GetCountries())
{
Console.WriteLine($"{country.Code}: {country.Name}")
}
Если тип используется во всем приложении, то вместо использования пар ключ-значение вы можете показать намерения вашего кода длячитатели вашего кода и создать пользовательский тип.
public class Country
{
public string Code { get; }
public string Name { get; }
public Country(string code, string name)
{
Code = code;
Name = name;
}
}
private IEnumerable<Country> GetCountries()
{
yield return new Country("code", "Earth");
yield return new Country("code", "Vulkan");
}
Который позже можно использовать более читабельным способом
foreach(var country in GetCountries())
{
Console.WriteLine($"{country.Code}: {country.Name}")
}