gpt4 book ai didi

c# - 已添加具有相同键的项 C#

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:57 25 4
gpt4 key购买 nike

我正在尝试浏览文件夹中的所有 *.txt 文件以获取其中的元数据。

void SearchAndPopulate(string path, string searchText)
{

DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles("*.txt");
Dictionary<String, dynamic> dictionary = new Dictionary<String, Object>();
int i = 0;
foreach (FileInfo file in files)
{
dictionary.Add(String.Format("name{0}", i.ToString()), i);
using (StreamReader sr = new StreamReader(file.FullName))
{
string content = sr.ReadToEnd().ToLower();
if (content.Contains(searchText.ToLower()))
{
dictionary["name"+i] = File
.ReadAllLines(file.FullName)
.Select(y => y.Split('='))
.Where(y => y.Length > 1)
.ToDictionary(y => y[0].Trim(), y => y[1]);
var temp = dictionary["name" + i];
listBox1.Text = temp["NUM_CLIENT"];

}
}
i++;
}


}

对于字典变量,我得到“已添加具有相同键的项目”

最佳答案

当您尝试使用相同的键在字典中添加重复条目时会抛出此异常。字典中的键值必须是唯一的。

可能的原因

  1. 查看您的文件内容,您会发现至少有两行= 符号的左侧具有相同的字符串值。
  2. 您的文件中 = 符号的左侧有多个空值。您可以通过忽略这些行在 Linq 语句中更正此问题:

    dictionary["name"+i] = File.ReadAllLines(file.FullName)
    .Select(y => y.Split('='))
    .Where(y => y.Length > 1 && !string.IsNullOrWhiteSpace(y[0]))
    .ToDictionary(y => y[0].Trim(), y => y[1]);

关于c# - 已添加具有相同键的项 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43451779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com