一种在string []到float [] Converter <>中实现CultureInfo的方法

时间:2018-10-22 17:49:35

标签: c# arrays .net floating-point

我正在寻找一种在字符串[]中将CultureInfo.InvariantCulture添加到float []转换器的方法。 我使用此代码,但它不断抛出

  

输入字符串的格式不正确。   例外。

这是代码:

clearList.Add(new Tuple<string, string, float[]>(fileNamesList[i].Item1, fileNamesList[i].Item2, Array.ConvertAll(fileNamesList[i].Item3, new Converter<string, float>(float.Parse))));

更新:

        static List<Tuple<string, string, string[]>> fileNamesList = new List<Tuple<string, string, string[]>>();
       static List<Tuple<string, string, float[]>> clearList = new List<Tuple<string, string, float[]>>();
    static void Main(string[] args)
    {

        for (int i = 0; i < fileNamesList.Count; i++)
        {
            for (int j = 0; j < fileNamesList[i].Item3.Count(); j++)
            {                    
                if (String.IsNullOrEmpty(fileNamesList[i].Item3[j]))
                {
                    Console.WriteLine("Empty");
                }
                else if (!String.IsNullOrEmpty(fileNamesList[i].Item3[j]))
                {

                    if (fileNamesList[i].Item1.Equals("INCLUDE"))
                    {

                        string dataType = fileNamesList[i].Item1;
                        string date = fileNamesList[i].Item2;

                        string[] fileContent = fileNamesList[i].Item3;
                        clearList.Add(new Tuple<string, string, float[]>(dataType, date, Array.ConvertAll(fileContent, new Converter<string, float>(float.Parse))));
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以替换

  • float.Parse

使用

  • s => float.Parse(s,CultureInfo.InvariantCulture)

    for (int i = 0; i < fileNamesList.Count; i++)
    {
        for (int j = 0; j < fileNamesList[i].Item3.Count(); j++)
        {
            if (String.IsNullOrEmpty(fileNamesList[i].Item3[j]))
            {
                Console.WriteLine("Empty");
            }
            else if (!String.IsNullOrEmpty(fileNamesList[i].Item3[j]))
            {
    
                if (fileNamesList[i].Item1.Equals("INCLUDE"))
                {
    
                    string dataType = fileNamesList[i].Item1;
                    string date = fileNamesList[i].Item2;
    
                    string[] fileContent = fileNamesList[i].Item3;
                    clearList.Add(new Tuple<string, string, float[]>(dataType, date, Array.ConvertAll(fileContent, new Converter<string, float>(s => float.Parse(s, CultureInfo.InvariantCulture )))));
                }
            }
        }
    }