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

本文关键字:自己的 变量 拆分 foreach 元素 使用 | 更新日期: 2023-09-27 18:18:15

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

我试图插入一个分割字符串到数据库中,每个值被插入到不同的列。

我现在有:

ID | ClientName | ShopName | Address | 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夫人

店铺名称占位符

地址占位符

邮编占位符

联系人号码占位符

,这是预期的。如何将这些元素插入到正确的列中,这让我很困惑。我考虑使用:

Console.WriteLine(split[0]);

但这并没有产生预期的结果。期望值:

列出占位符

列出占位符

但是结果是:

ClientName占位符#1

ClientName占位符#2

ClientName占位符#3

地址占位符 ClientName占位符3

,这样它就不会在不跳过地址的情况下迭代每个客户端名称。

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

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

因为字符串是不可变的,所以这一行不会改变Element…

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
    });
}