Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串数组写入文件,但它只打印System.string[]_C# - Fatal编程技术网

C# 将字符串数组写入文件,但它只打印System.string[]

C# 将字符串数组写入文件,但它只打印System.string[],c#,C#,我已经编写了此代码,但存在一些问题: const int maxPeopleInFile = 2; using (StreamReader reader = new StreamReader(@"c:\mytest\SortedTest.txt")) { string[] columnheaders = reader.ReadLine().Split(','); List<string> listKeeper = new Li

我已经编写了此代码,但存在一些问题:

    const int maxPeopleInFile = 2;

    using (StreamReader reader = new StreamReader(@"c:\mytest\SortedTest.txt"))
    {
        string[] columnheaders = reader.ReadLine().Split(',');
        List<string> listKeeper = new List<string>();
        int fileNumber = 1;

        while (reader.Peek() > 0)
        {
            string[] currentRowValues = reader.ReadLine().Split(',');
            string id = currentRowValues[2];

            if (listKeeper.Count < maxPeopleInFile || (listKeeper.Count() <= maxPeopleInFile && listKeeper.Contains(id)))
            {
                if (!listKeeper.Contains(id))
                {
                    listKeeper.Add(id);
                }

                var writer = File.CreateText("file_" + fileNumber + ".txt");
                writer.Write(currentRowValues);
                writer.Close();
            }
            else // new file
            {
                fileNumber++;
                listKeeper = new List<string>();
                var writer = File.CreateText("file_" + fileNumber + ".txt");
                writer.Write(currentRowValues);
            }
        }
    }
const int maxpeopleinfle=2;
使用(StreamReader=newstreamreader(@“c:\mytest\SortedTest.txt”))
{
string[]columnheaders=reader.ReadLine().Split(',');
List listKeeper=新列表();
int fileNumber=1;
while(reader.Peek()>0)
{
字符串[]currentRowValues=reader.ReadLine().Split(',');
字符串id=currentRowValues[2];

如果(listKeeper.CountcurrentRowValues
是一个数组,则此调用

writer.Write(currentRowValues);
相当于

writer.Write(currentRowValues.ToString());
它生成您看到的输出(即
System.String[]
),因为
ToString()
不会迭代单个字符串值

您可以使用以下命令一次性将整个阵列写入文件:

File.WriteAllLines("file_" + fileNumber + ".txt", currentRowValues);
(来自评论)[I]希望将[我从原始文件中读取的确切行]放入一个新文件中,就像它以前在原始文件中一样

然后应使用
string.Join
撤消
string.Split的效果:

writer.Write(string.Join(",", currentRowValues));

由于
currentRowValues
是一个数组,因此此调用

writer.Write(currentRowValues);
相当于

writer.Write(currentRowValues.ToString());
它生成您看到的输出(即
System.String[]
),因为
ToString()
不会迭代单个字符串值

您可以使用以下命令一次性将整个阵列写入文件:

File.WriteAllLines("file_" + fileNumber + ".txt", currentRowValues);
(来自评论)[I]希望将[我从原始文件中读取的确切行]放入一个新文件中,就像它以前在原始文件中一样

然后应使用
string.Join
撤消
string.Split的效果:

writer.Write(string.Join(",", currentRowValues));

由于
currentRowValues
是一个数组,因此此调用

writer.Write(currentRowValues);
相当于

writer.Write(currentRowValues.ToString());
它生成您看到的输出(即
System.String[]
),因为
ToString()
不会迭代单个字符串值

您可以使用以下命令一次性将整个阵列写入文件:

File.WriteAllLines("file_" + fileNumber + ".txt", currentRowValues);
(来自评论)[I]希望将[我从原始文件中读取的确切行]放入一个新文件中,就像它以前在原始文件中一样

然后应使用
string.Join
撤消
string.Split的效果:

writer.Write(string.Join(",", currentRowValues));

由于
currentRowValues
是一个数组,因此此调用

writer.Write(currentRowValues);
相当于

writer.Write(currentRowValues.ToString());
它生成您看到的输出(即
System.String[]
),因为
ToString()
不会迭代单个字符串值

您可以使用以下命令一次性将整个阵列写入文件:

File.WriteAllLines("file_" + fileNumber + ".txt", currentRowValues);
(来自评论)[I]希望将[我从原始文件中读取的确切行]放入一个新文件中,就像它以前在原始文件中一样

然后应使用
string.Join
撤消
string.Split的效果:

writer.Write(string.Join(",", currentRowValues));

您的问题在以下代码段中:

  writer.Write(currentRowValues);
尝试:


根据您的需要

您的问题在以下代码段中:

  writer.Write(currentRowValues);
尝试:


根据您的需要

您的问题在以下代码段中:

  writer.Write(currentRowValues);
尝试:


根据您的需要

您的问题在以下代码段中:

  writer.Write(currentRowValues);
尝试:


根据您的需要

您需要为
Write()
方法提供
字符串
值,而不是
字符串[]

我建议如下:

StringBuilder builder = new StringBuilder();
foreach (var currentValue in currentRowValues)
    builder.Append(currentValue);
writer.Write(builder.ToString());

注意:不要忘记添加名称空间以便能够使用StringBuilder。

您需要为
Write()
方法提供
字符串
值,而不是
字符串[]

我建议如下:

StringBuilder builder = new StringBuilder();
foreach (var currentValue in currentRowValues)
    builder.Append(currentValue);
writer.Write(builder.ToString());

注意:不要忘记添加名称空间以便能够使用StringBuilder。

您需要为
Write()
方法提供
字符串
值,而不是
字符串[]

我建议如下:

StringBuilder builder = new StringBuilder();
foreach (var currentValue in currentRowValues)
    builder.Append(currentValue);
writer.Write(builder.ToString());

注意:不要忘记添加名称空间以便能够使用StringBuilder。

您需要为
Write()
方法提供
字符串
值,而不是
字符串[]

我建议如下:

StringBuilder builder = new StringBuilder();
foreach (var currentValue in currentRowValues)
    builder.Append(currentValue);
writer.Write(builder.ToString());

注意:不要忘记添加名称空间,以便能够使用StringBuilder。

这是因为
currentRowValues
不会通过只将其提供给
FileStream.Write来序列化回逗号分隔的值列表,因为它会将
的返回值写入String
,这是对象类型名称

一种可能的方法是使用
string.Join

writer.Write(string.Join(",", currentRowValues));

这是因为
currentRowValues
不会通过只将其提供给
FileStream.Write
而序列化回逗号分隔的值列表,因为它会写入对象类型名称
ToString
的返回值

一种可能的方法是使用
string.Join

writer.Write(string.Join(",", currentRowValues));

这是因为
currentRowValues
不会通过只将其提供给
FileStream.Write
而序列化回逗号分隔的值列表,因为它会写入对象类型名称
ToString
的返回值

一种可能的方法是使用
string.Join

writer.Write(string.Join(",", currentRowValues));

这是因为
currentRowValues
不会通过只将其提供给
FileStream.Write
而序列化回逗号分隔的值列表,因为它会写入对象类型名称
ToString
的返回值

一种可能的方法是使用
string.Join

writer.Write(string.Join(",", currentRowValues));
writer.Write(currentRowValues)
不会迭代值;它基本上会迭代
currentRowValues.ToString()
,这不是您想要的。但我不清楚,如果您只想再次写入,为什么要首先拆分行……您尝试过使用stri吗