gpt4 book ai didi

c# - 创建匿名类型的通用列表是否有技巧?

转载 作者:IT王子 更新时间:2023-10-29 04:00:25 24 4
gpt4 key购买 nike

有时我需要使用元组,例如我有坦克列表和他们的目标坦克(他们追着他们或类似的东西):

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);

问题当然是我在定义它时没有类型可以传递给列表

最佳答案

您可以为匿名类型创建一个空列表,然后使用它,享受完整的智能感知和编译时检查:

var list = Enumerable.Empty<object>()
.Select(r => new {A = 0, B = 0}) // prototype of anonymous type
.ToList();

list.Add(new { A = 4, B = 5 }); // adding actual values

Console.Write(list[0].A);

关于c# - 创建匿名类型的通用列表是否有技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15749445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com