配置键C#XML中有多个int值

配置键C#XML中有多个int值,c#,arrays,xml,key,application-settings,C#,Arrays,Xml,Key,Application Settings,我想在设置中添加多个int值。 到目前为止,我有: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="DigiPortServer1" type="Configuration.Helpers.MultipleValuesSelection, Configuration.Helpers" requirePermission=

我想在设置中添加多个int值。 到目前为止,我有:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="DigiPortServer1" 
type="Configuration.Helpers.MultipleValuesSelection, Configuration.Helpers"   
requirePermission="false"/>
</configSections>

<DigiPortServer1>
<add key="3" value="3"></add>
<add key="4" value="4"></add>
<add key="5" value="5"></add>
<add key="6" value="6"></add>
<add key="7" value="7"></add>
<add key="8" value="8"></add>
<add key="9" value="9"></add>
<add key="10" value="10"></add>
<add key="11" value="11"></add>
<add key="12" value="12"></add>
<add key="13" value="13"></add>
<add key="14" value="14"></add>
<add key="15" value="15"></add>
<add key="16" value="16"></add>
<add key="17" value="17"></add>
<add key="18" value="18"></add>
</DigiPortServer1>
</configuration>


是这样吗?我发现了许多关于多个字符串值的问题。如何访问这些值?我想将它们保存到int数组或类似的东西中

您可以使用ConfigurationManager GetSection方法访问配置节值

var section = System.Configuration.ConfigurationManager.GetSection("DigiPortServer1") as System.Collections.Specialized.NameValueCollection;
        var value = section["keyname"];

如果节是名称-值对,则使用上述类型(NameValueCollection)强制转换,或者您可以使用自己的类型强制转换。

我会将您的文件修改为这种方式。因此,它将更容易访问和使用。这样,您可以通过编写
ConfigurationManager.AppSettings[“3”].ToString()轻松访问这些功能
请注意,您的文件没有与任何值关联的键。我增加了阿曲布他

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="DigiPortServer1"    
type="Configuration.Helpers.MultipleValuesSelection, Configuration.Helpers" 
requirePermission="false"/>
</configSections>

<appSettings>
<add key="3" value="3"></add>
<add key="4" value="4"></add>
<add key="5" value="5"></add>
<add key="6" value="6"></add>
<add key="7" value="7"></add>
<add key="8" value="8"></add>
<add key="9" value="9"></add>
<add key="10" value="10"></add>
<add key="11" value="11"></add>
<add key="12" value="12"></add>
<add key="13" value="13"></add>
<add key="14" value="14"></add>
<add key="15" value="15"></add>
<add key="16" value="16"></add>
<add key="17" value="17"></add>
<add key="18" value="18"></add>
</appSettings>
</configuration>


谢谢!这看起来不错,不过我想将这些值用作int值。除了将其从字符串解析为int之外,还有其他解决方案吗?很简单,不强制转换为字符串,而是强制转换为int Convert.ToInt32(ConfigurationManager.AppSettings[“3”])您可以强制转换为所需的数据类型实际上您的建议不会产生任何错误,但作为控制台输出,我只得到0。你能发现错误吗?int x=Convert.ToInt32(ConfigurationManager.AppSettings[“3”]);控制台写入线(x);int z=Convert.ToInt32(ConfigurationManager.AppSettings[“4”]);控制台写入线(z);不应该。这是appSettings的基础。您确定正确访问了该文件吗?