大致类似于foreach(var obj in from x in lst where x.Name=="AAA" select x)
Console.WriteLine(obj.Value);
就能访问所有Name为AAA的对象。不过通常,你可以使用 Dictionary<string, T> 或者 Dictionary<string, List<T>> 来索引保存更好。
Console.WriteLine(obj.Value);
就能访问所有Name为AAA的对象。不过通常,你可以使用 Dictionary<string, T> 或者 Dictionary<string, List<T>> 来索引保存更好。
实际上,你应该给你的T定义个索引器,比如:
public class T
{
public string Name { get; set; }
public string Value { get; set; }
public T(string _name, string _value)
{
Name = _name;
Value = _value;
} public string this[string name]
{
get { return this.Value; }
}
}
这样就可以通过Name来获取Value了,只对T有效,而不是List<T>。如果你想要索引的话,同样的可以用Dictionary<string,List<T>>来保存。
{
static void Main(string[] args)
{
Dictionary<string, T> dic = new Dictionary<string, T>();
dic.Add("1111", new T("guwei", "111"));
dic.Add("2222", new T("guwe1111i", "222")); Console.WriteLine(dic["2222"]["guwe1111i"]);//得到222
}
} public class T
{
public string Name { get; set; }
public string Value { get; set; }
public T(string _name, string _value)
{
Name = _name;
Value = _value;
} public string this[string name]
{
get
{
if (name == Name)
{
return Value;
}
throw new Exception("not found...");
}
}
}