gpt4 book ai didi

c# - 将键值对与列表一起使用以动态创建配对值数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:17 26 4
gpt4 key购买 nike

我目前正在使用 XDocument 从 XML 文档中读取特定属性,这很顺利。现在,我正在尝试创建一个包含键和值的数组,以便稍后用于验证。这可能是一个孤立的事件(由于无法谷歌/研究错误),但我遇到的错误消息完全难倒了我,语法看起来确实正确。代码如下:

    public Array GetConfig(string FilePath)
{
var Document = XDocument.Load("CoreConfig.xml");

var Results = Document.Descendants().Elements("Database");
var ReturnList = new List<KeyValuePair<string,string>>();
string[] DBConfigElements = new string[4]{"Server","Username","Password","Database"};
int Count = 1;
var list = new List<KeyValuePair<string, string>>() { // Errors 1,2,3
foreach (string Elements in Results){
new KeyValuePair<string,string>(DBConfigElements[Count],Elements);
Count++;
} // Error 4
};
}

显示的错误信息是:

Error 1 Invalid initializer member declarator

Error 2 ; expected

Error 3 } expected

Error 4 { expected

我已经标记了触发错误消息的代码行。语法看起来确实正确,那么我哪里出错了?

最佳答案

您不能像那样将代码嵌套在集合初始值设定项中。如果你还记得a collection initializer basically calls Add() on the parent对于它包含的每个元素,您都明白为什么这是不可能的。

要么格式化代码,使其在 foreach 中调用 list.Add(new KVP...):

var list = new List<KeyValuePair<string, string>>();

foreach (string Elements in Results)
{
list.Add(new KeyValuePair<string,string>(DBConfigElements[Count], Elements));
Count++;
}

或者使用 Linq:

var list = Results.Select((element, index) => 
new KeyValuePair<string,string>(DBConfigElements[index], element))
.ToList()

您可能还想使用比“list”和“result”更有意义的变量名。

关于c# - 将键值对与列表一起使用以动态创建配对值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147530/

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