【发布时间】:2013-04-01 18:39:18
【问题描述】:
有时我需要使用元组,例如我有坦克列表和他们的目标坦克(他们追逐他们或类似的东西):
List<Tuple<Tank,Tank>> mylist = new List<Tuple<Tank,Tank>>();
然后当我遍历列表时,我通过
访问它们mylist[i].item1 ...
mylist[i].item2 ...
这很令人困惑,我总是忘记什么是 item1 和什么是 item2,如果我可以通过以下方式访问它们:
mylist[i].AttackingTank...
mylist[i].TargetTank...
这样就清楚多了,有没有不定义类的方法:
MyTuple
{
public Tank AttackingTank;
public Tank TargetTank;
}
我想避免定义此类,因为那样我将不得不在不同的场景中定义许多不同的类,我可以做一些“技巧”并使其匿名。
类似:
var k = new {Name = "me", phone = 123};
mylist.Add(k);
当然,当我定义它时我没有类型可以传递给 List
【问题讨论】:
-
列表类型的动态关键字你试过了吗?
-
定义类有什么问题?似乎是显而易见的解决方案。至于需要
define many different classes,或许有可以利用的继承结构?
标签: c# generics anonymous-types