使用foreach将元素拆分为自己的变量

时间:2014-08-14 18:59:01

标签: c# foreach

我目前正在研究一种将CSV导入数据库的方法(自定义方法也可以获得更多关于C#的知识)我遇到了以下问题。

我正在尝试将拆分字符串插入数据库,每个值都插入到不同的列中。

我目前有:

  

ID | ClientName | ShopName |地址| PostCode | ContactNumber

作为我的专栏。 ID是识别和自我增量

我的代码是:

public void FileContents(string Str)
       // private System.Collections.Generic.List<Tuple<string,string,string,string,string>> FileContents(string Str)
        {
            int Counter = 0;
            //string QueryString = "INSERT INTO "
            string[] split = Str.Split(',');
            foreach (string Element in split)
            {
                Element.Trim(new Char[] { ' ', '\t' });
                Console.WriteLine(Element);

                Counter++;
            }

            Console.ReadKey(true);


        } 

使用foreach循环似乎产生了正确的结果,如:

  

DummyName夫人

     

ShopName Place Holder

     

地址持有人

     

PostCode占位符

     

ContactNumber Place Holder

这是预期的。关于如何将每个元素插入正确列的方法使我无法理解。我考虑过使用:

Console.WriteLine(split[0]);

但这不会产生被删除的结果。期待的是:

  

ClientName占位符

     

ClientName占位符

但相反产量:

  

ClientName占位符#1

     

ClientName占位符#2

     

ClientName占位符#3

     

地址占位符 ClientName占位符3

所以它不会遍历每个客户端名称而不跳转到该地址。

那么,获取foreach循环中每个元素然后插入数据库的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

由于字符串不可变,此行不会改变元素...

Element.Trim(new Char[] { ' ', '\t' });

您需要以下内容:

var newElement = Element.Trim(new Char[] { ' ', '\t' });
Console.WriteLine(newElement); 

如果没有看到输入,我会假设你有一个文件......

var lines = new List<string>();

  lines.AddRange(File.ReadAllLines(@"test.txt"));
  foreach(var lineToSplit in lines)
  {
      string[] split = lineToSplit.Split(',');
      foreach (string element in split)
         {
            var curElement = element.Trim(new Char[] { ' ', '\t' });
            Console.WriteLine(curElement);
         }
  }

你可以创建一个类

public class Clients
 {
   public string ClientName { get; set; }
   public string ShopName { get; set; }
   public string Address { get; set; }
   public string PostCode { get; set; }
   public string ContactNumber { get; set; }            
 }

然后填充客户列表......

lines.AddRange(File.ReadAllLines(@"test.txt"));
var clients = new List<Clients>();

foreach (var lineToSplit in lines)
{
    var split = lineToSplit.Split(',');
    clients.Add(new Clients
    {
        ClientName = split[0]
        //etc
    });
}