插入内容转换为字符串
问题描述:
我一直在挣扎了一小段代码,一小会儿吧。我有一个包含一串数字的列的CSV文件。我可以毫无问题地导入该文件并显示它。插入内容转换为字符串
我的目标是拿数字在每个表中,并把它变成一个独立的字符串,通过函数运行的字符串,然后把结果反馈到我的DataGrid两列。有没有办法让我用下面的代码来做这件事? foreach语句就是我认为应该完成的地方。
编辑:我调整了代码,它现在的作品,我希望它的方式,但我无法将结果插入到任何列,除了第一个。有没有一种方法可以将结果定位到第二栏?
using (var fs = File.OpenRead(Dialog.FileName))
using (var reader = new StreamReader(fs))
{
List<string> lista = new List<string>();
List<string> listb = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
lista.Add(values[0]);
dt1.Rows.Add(values[0]);
}
foreach (var item in lista)
{
string temp;
GetLuhnCheckDigit(item);
listb.Add(last.ToString());
temp = item + last.ToString();
dt1.Rows.Add(temp); //This only adds to the first column
}
dataGridView1.DataSource = dt1;
答
不知道GetLuhnCheckDigit
方法的作用,不可能确定第二列包含哪些值。望着贴的代码,有很多东西像丢失多少列的数据表已经是哪里出了Dialog
变量定义?什么是last
?
假设DataTable
dt1
中至少有两列,我不确定为什么要将项目添加到第一列,然后循环显示这些项目的列表以设置第二列。看来在同一时间添加两个列会更容易。
你可以做这一切的同时读取文件象下面这样:
try {
using (var fs = File.OpenRead(Dialog.FileName)) {
using (var reader = new StreamReader(fs)) {
List<string> lista = new List<string>();
List<string> listb = new List<string>();
string temp;
while (!reader.EndOfStream) {
var line = reader.ReadLine();
var values = line.Split(',');
lista.Add(values[0]);
GetLuhnCheckDigit(values[0]); // <-- What is this method doing???
listb.Add(last.ToString());
temp = values[0] + last.ToString();
dt1.Rows.Add(values[0], temp); // <-- this adds both columns
}
dataGridView1.DataSource = dt1;
}
}
}
catch (Exception e) {
MessageBox.Show("Error: " + e.Message);
}
让我知道如果我失去了一些东西,因为我无能,什么GetLuhnCheckDigit
方法可以做。
这并获得成功。 GetLuhnCheckDigit函数只需要一个字符串并根据插入的字符串生成一个数字;更多信息,请访问https://en.wikipedia.org/wiki/Luhn_algorithm。 – SomethingStrange