签入CSV并获取从行到变量的所有数据

时间:2017-07-27 07:21:08

标签: c# csv

我有CSV文件,如:

Head1; Head2; Head3; Head4;
test1; word1; word2; word3;
test2; word1, word2; word3;
test3; word1; word2; word3;

我从textBox1.Text中搜索“test2”

Private void button1_Click(object sender, RoutedEventArgs e)
        {
            string NS = textBox1.Text;
            bool found = File
              .ReadLines(@"test.csv") 
              .Any(line => line.Contains(NS)); 

            if (found)
              MessageBox.Show("Test found!");

但是,我不知道如何从行中创建单个变量,其中找到“test2”。 类似的东西:

First variable: head2 = word1
Second variable: head3 = word2
etc.

我正在使用Visual Studio 2010 Express。

2 个答案:

答案 0 :(得分:-1)

你可以试试这个。

               string NS = textBox1.Text;

               var foundRecord =  File
                  .ReadLines(@"test.csv")
                  .Where(line => line.Contains(NS)).FirstOrDefault();

                if (foundRecord != null)
                {
                    var cols = foundRecord.Split(';'); //split by (;)
                    var firstVar = cols[0]; //capture column in variable
                    var secondVar = cols[1];
                    var thirdVar = cols[2];
                }

答案 1 :(得分:-2)

小心地,你有一个模型,这是一个类,代表你的csv然后你喂它:

public class MyCsvStronglyTypeRow
{
    public Head1{get; set;}
    public Head2{get; set;}
    public Head3{get; set;}
    public Head4{get; set;}
}

要提供此模型并以List<MyCsvStronglyTypedRow>结尾,您应该阅读并解析csv的每一行。

有一个工具可以帮助你在阅读/解析过程中调用CsvHelper