首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将string[]转换为double[]

将string[]转换为double[]
EN

Stack Overflow用户
提问于 2015-04-02 21:27:11
回答 3查看 779关注 0票数 0

我有一个文本文件,它被读入,然后存储在string[]中,然后我将它转换成int[],然后我的泡泡排序应该对它进行排序,但它没有排序,因为文本文件中的值是十进制的。所以我的问题是,如何将string[]int[]转换为可以接受十进制值的东西,比如double[]。谢谢。

代码:

代码语言:javascript
复制
string[] sh1OpenData = File.ReadAllLines("SH1_Open.txt");

..。

代码语言:javascript
复制
else if(input2.ToLower() == "open") //----
{
    int[] intSh1OpenData = new int[sh1OpenData.Length];

    for (int x = 0; x < sh1OpenData.Length; x++)
    {
        intSh1OpenData[x] = Convert.ToInt32(sh1OpenData[x]);
    }

    Console.WriteLine("\n");
    Console.WriteLine("Unsorted");

    for (int i = 0; i < intSh1OpenData.Length; i++)
    {
        Console.Write(intSh1OpenData[i] + " ");
        Console.WriteLine(" ");
    }

    int temp = 0; 

    for (int write = 0; write < intSh1OpenData.Length; write++) 
    {
        for (int sort = 0; sort < intSh1OpenData.Length - 1; sort++) 
        {
            if (intSh1OpenData[sort] > intSh1OpenData[sort + 1]) 
            {
                temp = intSh1OpenData[sort + 1];
                intSh1OpenData[sort + 1] = intSh1OpenData[sort];
                intSh1OpenData[sort] = temp;
            }
        }
    }
        Console.WriteLine("\n\n\nSORTED");

    for (int i = 0; i < intSh1OpenData.Length; i++)
        Console.Write(intSh1OpenData[i] + "\n");
}
EN

回答 3

Stack Overflow用户

发布于 2015-04-02 21:30:59

您不应该使用int对字符串进行比较。使用String.Compare(如果等于则返回0,如果小于则返回-1,如果大于则返回1)或List.Sort()对字符串数组进行排序

票数 0
EN

Stack Overflow用户

发布于 2015-04-02 21:40:04

下面列出了您需要进行的唯一更改:

代码语言:javascript
复制
double[] intSh1OpenData = new double[sh1OpenData.Length]; // double[] instead of int[]

for (int x = 0; x < sh1OpenData.Length; x++)
{
    intSh1OpenData[x] = Convert.ToDouble(sh1OpenData[x]); // Convert to Double
}

还要将temp变量的声明更改为double temp;

一些你可以通读的东西,因为你提到了你是编程新手:

C# Sort Arrays and Lists Examples

MSDN: List.Sort Method

票数 0
EN

Stack Overflow用户

发布于 2015-04-02 21:41:26

使用LINQ非常简单

代码语言:javascript
复制
var asDouble = sh1OpenData.Select(x => Double.Parse(x)).OrderBy(x => x).ToArray();

这将为您提供一个排序(升序)的Double数组。

注意:这假设所有的sh1OpenData都可以被解析为一个Double,否则将抛出一个异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29414173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档