c# - 数据表获取元组作为对象

标签 c# unity3d datatable

所以我在当前正在制作的 Unity 项目中遇到了问题

我有一个数据表,其中包含脚本中不同部分 [Weight,Products,...] 的统计信息 在这个数据库中有多个我创建的元组。例如我的推力 Tuple<string, int>在数据库中(第六行)这个元组被分配了这个:

Tuple.Create("WASD",1)

WASD 是推进器可以发射的方向,1 是强度。

在我的代码的一部分中,我想将第二个值 (1) 添加到一个变量中。 但是它只是不起作用。 如果我打印出元组,我会得到:

(WASD, 1)

UnityEngine.MonoBehaviour:print(Object) Master:Start() (at Assets/Scripts/Master.cs:68)

女巫很好

但是我无法访问它。它说它是一个对象,但如果我这样做 GetType()我得到:

System.Tuple`2[System.String,System.Single]

我无法使用 Item2 访问它或 Item1 . 它只是 (WASD,1)

BStats.Columns.Add(new DataColumn("Block", typeof(string)));
BStats.Columns.Add(new DataColumn("live", typeof(float)));
BStats.Columns.Add(new DataColumn("Weight", typeof(float)));
BStats.Columns.Add(new DataColumn("Products", typeof(Tuple<string,float>)));
BStats.Columns.Add(new DataColumn("Thrust", typeof(Tuple<string,float>)));
BStats.Columns.Add(new DataColumn("Consume", typeof(Tuple<string, float>)));
BStats.Columns.Add(new DataColumn("Desc", typeof(string)));

BStats.Rows.Add("Energy",1F,3F,Tuple.Create("Energy",1.0F),Tuple.Create("NAN",0F),
Tuple.Create("Thori  um", 0.1F), "a Thorium Reactor");

BStats.Rows.Add("Armor", 5F, 4F, Tuple.Create("NAN", 0F), Tuple.Create("NAN", 0F),
Tuple.Create("NAN", 0F), "a simple Armor block");

BStats.Rows.Add("Engine", 2F, 2F, Tuple.Create("NAN", 0F), Tuple.Create("WASD", 1F),
Tuple.Create("Fuel", 0.2F), "a space engine");

BStats.Rows.Add("Gun", 1.5F, 0.5F, Tuple.Create("NAN", 0F), Tuple.Create("NAN", 0F),
Tuple.Create("Energy", 0.5F), "a simple laser Gun");

BStats.Rows.Add("Command Capsule", 3F, 5F, Tuple.Create("NAN", 0F), Tuple.Create("NAN", 0F),
Tuple.Create("Energy", 0.1F), "the Heart of your spaceship.");

print(BStats.Rows[2][4])

我是 Unity 的新手,所以这将是一个愚蠢的错误,或者我使用数据表的方式是错误的。

最佳答案

DataRow的索引器有 return typeobject所以你需要 cast它到Tuple<string,float> :

var tuple = (Tuple<string,float>)BStats.Rows[2][4];
Cosole.WriteLine(tuple.Item1)

关于c# - 数据表获取元组作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63124586/

相关文章:

c# - 如何根据属性匹配元素?

c# - 从Unity3D代码启动android服务

c# - 在字符串列表中查找公共(public)字符串

c# - 如何使用机器人框架向新 channel 发送消息?

iphone - 根据 iOS 15 上的黑暗模式,Unity 着色器出现故障

c# - C# 中 OrderDictionary 的通用实现显示不明确的方法警告

jquery - DATATABLE jQuery TH 和 TD 对齐

MySQL 评论

C#数据表中的数字格式

c# - 图像拖放(WPF 窗口)