C# 如何验证可频繁更改的条件

C# 如何验证可频繁更改的条件,c#,.net,list,web-config,C#,.net,List,Web Config,我有一个字母数字(字符串)值的列表,我期待在响应。理想情况下,响应将从该列表中选择一个。我想验证一个条件,看看列表的子集中是否存在一个值。该子集包含可由业务添加或删除的字母数字值列表 在这个场景中,我计划将这些值放在web.config文件中 例如:我有子集responseValues={“A1”、“B2”、“D45”} 我想检查一下: if ( value IN { responseValues } ) { // Do something } ResponseValue可以根据业务进行更改

我有一个字母数字(字符串)值的列表,我期待在响应。理想情况下,响应将从该列表中选择一个。我想验证一个条件,看看列表的子集中是否存在一个值。该子集包含可由业务添加或删除的字母数字值列表

在这个场景中,我计划将这些值放在web.config文件中

例如:我有子集
responseValues={“A1”、“B2”、“D45”}

我想检查一下:

if ( value IN { responseValues } )
{
 // Do something
}
ResponseValue可以根据业务进行更改,因此我不想在代码中硬编码这些值,而是想提出一种更好的设计,将其保存在DB或web.config文件中

我可以在web.config文件中执行以下操作

请在哪一部分下帮助我添加或仅添加一个具有单个键的键值对

<add key = "ResponseValues" value="A1, B2, D45"/>

如果您需要一些可配置的值,您可以使用以下选项:

1.外部存储库数据库、XML、txt、JSON文件..:
优点:用户可以通过一些管理前端更改此值。

2.网络配置:
PROS:用户可以通过一些管理前端更改此值
缺点:每次修改应用程序池时,应用程序池将重新启动,会话状态将丢失=>如果使用表单身份验证,所有用户都将注销

3.硬编码:
缺点:只有开发人员可以更改值
缺点:违反开闭原则

缺点:根据您将硬编码值放在何处,当您更改值时会话状态可能会丢失

有什么问题
。包含
可以,但我不知道语法,我对编程比较陌生。请帮助了解如何在C#string[]values=System.Configuration.ConfigurationManager.AppSetting[“ResponseValues”].Split(“,”)中获取这些值;然后是values.Contains?
if(responseValues.Contains(value))
。在web.config和DB表中有这样的动态可配置值有什么区别?我知道这两种方法都比在数据库或其他类型的存储库(xml、txt)中硬编码要好得多。您可以让用户更改这些值——制作一个前端,一些设置窗口,在那里他们可以更改这些值。对于webconfig,我告诉过你我的观点,使用硬编码的方法,只有开发人员才能改变这一点,这也违反了开-关原则。