C# 为什么将文本文件保存到数据库会导致重复?

C# 为什么将文本文件保存到数据库会导致重复?,c#,C#,这是我的文本文件中的数据 [Start] "Pepsi"|"30"|"64" "Coke"|"35"|"24" "Sandwich"|"60"|"14" "Chicken"|"120"|"10" "Bread"|"60"|"24" [End] 这是我到目前为止的代码,我不知道代码的哪一部分导致了多条记录,问题是什么?我需要任何可以得到的帮助,谢谢。为什么要在循环中再次读取所有文件的所有行?您已经将它们读入文件。因此,内部循环是冗余的 而不是 foreach (var f in files)

这是我的文本文件中的数据

[Start]
"Pepsi"|"30"|"64"
"Coke"|"35"|"24"
"Sandwich"|"60"|"14"
"Chicken"|"120"|"10"
"Bread"|"60"|"24"
[End]


这是我到目前为止的代码,我不知道代码的哪一部分导致了多条记录,问题是什么?我需要任何可以得到的帮助,谢谢。

为什么要在循环中再次读取所有文件的所有行?您已经将它们读入
文件
。因此,内部循环是冗余的

而不是

foreach (var f in files)
{
    string[] Lines = File.ReadAllLines(f.File);
    bool processRecord = false;
    foreach (string line in Lines)
    {  ....
您有匿名类型的行:

foreach (var f in files)
{
    string line = f.Line;
    // ...
这会导致你的重复吗

var files = from file in Directory.EnumerateFiles(@"C:\Users\K\Desktop\New folder", "*.txt", SearchOption.AllDirectories)
                            from line in File.ReadLines(file)
                            select new
                            {
                                File = file,
                                Line = line
                            };
这将为文件中的每一行生成一个条目。比如:

foo.txt | text here,text here, text here.
foo.txt | text here, text here, text here. 
etc..
然后循环这些代码,对于每一行,通过读取文件的所有行,再次处理整个文件。这当然会导致重复。尝试将第一行更改为

 var files = from file in Directory.EnumerateFiles(@"C:\Users\K\Desktop\New folder", "*.txt", SearchOption.AllDirectories) select new { File = file };

是的,我甚至放下表格,然后重新运行程序。我已经将你的标题改写为一个问题,而不是一个观察。顺便说一句,欢迎来到SO!我尝试了这个,但仍然从目录中的文件中获得了重复的
code
var files=。从文件中的行中枚举文件(@“C:\Users\Kevin\Desktop\New folder”,“*.txt”,SearchOption.AllDirectories)。读取行(文件)选择新建{file=file}<代码>代码删除“从文件中的行.Readlines(File)”部分。我删除了字符串[]行=文件.ReadAllLines(f.File);并将其替换为字符串行=f.行;那么我就不能在foreach上将类型char转换为string(string-line-in-line)@KevinRodriguez:正如我所说的,您不需要内部循环,因为您已经有了(单个)行。
 var files = from file in Directory.EnumerateFiles(@"C:\Users\K\Desktop\New folder", "*.txt", SearchOption.AllDirectories) select new { File = file };