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吗