如何使用foreach填充数组?

时间:2015-11-17 11:35:47

标签: c#

如何获取我可以在控制台中写入的数据以写入阵列和控制台。

目前它只显示在控制台上(没有添加添加到阵列的功能)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;

namespace TBParser
{
   class Program
   {
    static void Main(string[] args)
    {
        String[] arr = new String[100];
        string[] lines = System.IO.File.ReadAllLines(@"C:\ShpereCompare3.txt");
        Console.WriteLine("Contents of Text File: ");
        foreach (string line in lines)
        {
            Console.WriteLine("\r\t" + line);

        }
        System.IO.File.WriteAllLines(@"C:\Test.txt",lines);
        Console.WriteLine("Press any key to Exit");
        Console.ReadKey();    
    }
   }
}

如果我的文字说明

hello
my
name
is
Simon

那么数组的前5个插槽应该包含每一行?

3 个答案:

答案 0 :(得分:0)

该行:

string[] lines = System.IO.File.ReadAllLines(@"C:\ShpereCompare3.txt");

已经在创建一个数组,每个元素都包含一行。

无需通过foreach使用相同的信息填充新数组。

答案 1 :(得分:0)

如果要将文本文件中的行复制到另一个数组中,则可以执行以下操作:

String[] arr = new String[lines.Length];
Array.Copy(lines, arr, lines.Length);

答案 2 :(得分:0)

找到了解决方法。我要走的路太复杂了。感谢您的所有输入

此处修正了代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;

namespace TBParser
{
   class Program
   {
    static void Main(string[] args)
    {
        string fileName = @"C:shpereCompare3.txt";
        List<string> Names = new List<string>();
        List<string> Value = new List<string>();
        using (StreamReader fileReader = new StreamReader(fileName))
        {
            string fileLine;

            while (!fileReader.EndOfStream)
            {
                fileLine = fileReader.ReadLine();
                if (fileLine.StartsWith("Name"))
                {
                    Names.Add(fileLine.Substring(21));
                }
                if (fileLine.StartsWith("Center"))
                {
                    string[] fileSplit = fileLine.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    Value.Add(fileSplit[1]);
                }
            }
            string outputString = "";
            for (int i = 0;i < Names.Count; i++)
            {
                outputString += Names[i] + " = " + Value[i] + "\r\n";
            }
            System.IO.File.WriteAllText(@"C:Test.txt", outputString);
        }
    }
}

}