如何搜索类类型的列表属性

时间:2013-05-30 05:05:59

标签: c# list find

我有一个名为capital的类,它包含2个变量country和capital.Here看起来如何...

public class country
{
    public string Country { get; set; }
    public string Capital { get; set; }
}

我有一个上面类类型的列表,即List<country>我可以使用country class变量添加值。现在,如何找到例如列表的特定值包含这些值

country:USA,
capital:New York    

country:China,
capital:Bejing

如何在上面的列表中找到中国... 最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

使用.Find()。使用Linq Extension方法将要求您引用System.Linq。如果您使用的是.NET 3.5及更高版本,那就太棒了。否则,只需使用Find。

namespace _16828321
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Country> c = new List<Country>()
            {
                new Country(){ Capital = "New York", CountryName = "USA"},
                new Country(){ Capital = "Beijing", CountryName = "China"}
            };

            Country result = c.Find(country => country.CountryName == "China");
        }
    }

    public class Country
    {
        public string CountryName { get; set; }
        public string Capital { get; set; }
    }
}

答案 1 :(得分:2)

最简单的方法是使用Linq:

var countries = new List<country>();

countries.Add(new country { Country = "USA", Capital = "Washington" });

countries.Add(new country { Country = "China", Capital = "Bejing" });

var usaFromCountries = countries.FirstOrDefault( c => c.Country == "USA" );

if(usaFromCountries == null)
{
   Console.WriteLine("USA did not exist in countries list");
}
else
{
    Console.Write("Capital of the USA is ");
    Console.WriteLine(usaFromCountries.Capital);
}