插入内容转换为字符串

问题描述:

我一直在挣扎了一小段代码,一小会儿吧。我有一个包含一串数字的列的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

假设DataTabledt1中至少有两列,我不确定为什么要将项目添加到第一列,然后循环显示这些项目的列表以设置第二列。看来在同一时间添加两个列会更容易。

你可以做这一切的同时读取文件象下面这样:

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方法可以做。

+0

这并获得成功。 GetLuhnCheckDigit函数只需要一个字符串并根据插入的字符串生成一个数字;更多信息,请访问https://en.wikipedia.org/wiki/Luhn_algorithm。 – SomethingStrange