如何将字符串列表转换为c#中的浮点列表,统一?

Posted

技术标签:

【中文标题】如何将字符串列表转换为c#中的浮点列表,统一?【英文标题】:How to convert a list of string into a list of floats in c#, unity? 【发布时间】:2021-10-16 03:53:21 【问题描述】:

所以我从 mysql 数据库中查询数据,并将数据存储在 JSON 文件中。我有一个名为“x”的字符串列表,它从数据库中获取一行,但值本身是浮点数。我正在尝试将字符串列表转换为浮点数列表,因为我想将这些值用作向量点。

从另一个 C# 文件调用我的名为“x”的列表字符串,我在该文件中从 php 查询数据库。如何将我的字符串列表转换为浮点数列表?

for (int i = 0; i < DataServerManager.instance.x.Count; i++)

    Debug.Log(DataServerManager.instance.x);

这段代码的作用是遍历我的字符串列表并调试值。值是数字。这就是为什么我试图将字符串列表转换为浮点数列表的原因。因为我想将这些值用作数字。

它们首先出现在字符串列表中的原因是因为 JSON 格式。

如何将字符串列表转换为浮点数列表?

【问题讨论】:

如何将 one 字符串转换为浮点数?对字符串列表中的所有字符串执行此操作。 List&lt;Single&gt; floats = DataServerManager.instance.x.Select( str =&gt; ( ok: Single.TryParse( str, out Single f ), f ) ).Where( t =&gt; t.ok ).Select( t =&gt; t.f ).ToList() @Dai 非常感谢! @Dai,嘿,如何将浮点数列表转换为浮点数。我需要在我的 Vector3 vectorpoint 变量中使用每一个浮点数。但是当我使用浮点数时,它说不能将 转换为浮点数。如何将浮点数列表转换为可以在向量中使用的浮点数? 我想通了!谢谢大家! 【参考方案1】:

如果您的所有字符串都可靠地浮动并且不会解析失败,您可以这样做:

var floats = DataServerManager.instance.x.Select(float.Parse).ToList()

如果他们可能无法解析,我想我会使用循环

var floats = new List<float>();
foreach(var s in DataServerManager.instance.x)
  if(float.TryParse(s, out var f)) floats.Add(f);

【讨论】:

谢谢,我在@Dai 的帮助下搞定了。他们告诉我使用 'List floats = DataServerManager.instance.x.Select( str => ( ok: Single.TryParse( str, out Single f ), f ) ).Where( t => t.ok ) .Select(t => tf).ToList()' 堆栈溢出不是这样工作的。 Dai 将其作为评论发表,但应该作为答案发布。评论框的占位符文本甚至说“避免在 cmets 中回答问题”。我已经发布了(作为答案)戴的建议的两种替代方案——一种更简单/更快,如果您确定所有字符串都将转换为浮点数而不会出错,另一种会检查但不使用 LINQ。您不应该将您不理解的代码粘贴到您的程序中。我们应该发布答案而不是在 cmets 中回答的原因是 cmets 是短暂的,而且...... ..不能被标记为答案,因此您的问题在仪表板上仍然“未回答”,社区的其他成员和未来的访问者不知道什么对您有用。所以不仅仅是关于你和你的问题,它是关于未来所有来到这里的人(这个问题)。您现在应该做的是要求 Dai 将评论作为答案发布,发布您自己的答案,或者(正如您可能使用我的建议之一的关于浮点数的编译器错误所表明的那样)通过单击将此答案标记为答案灰色检查将其变为绿色。这标志着 Q 已回答 这有助于指导未来的访问者了解对您有用的方法,并使仪表板更有效地工作,以便寻找未回答问题的人们更轻松。将来,如果有人在评论中回答问题,请不要使用它,然后让您的问题腐烂;要求他们发布答案或发布您自己的答案 -

以上是关于如何将字符串列表转换为c#中的浮点列表,统一?的主要内容,如果未能解决你的问题,请参考以下文章

将字符串浮点数列表转换为具有 2 个小数点的浮点数列表

C#:将字符列表转换为字符串

将 ul li 转换为字符串列表 c#

从浮点字符串到 Int 的 Python 类型转换在创建列表时无法在 for 循环中工作

字符串列表/数组到 numpy 浮点数组

c# 如何将字符串转换成url