Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在给定多个值的情况下表示相同值的btter方法(C#3.0)_C#_C# 3.0 - Fatal编程技术网

在给定多个值的情况下表示相同值的btter方法(C#3.0)

在给定多个值的情况下表示相同值的btter方法(C#3.0),c#,c#-3.0,C#,C# 3.0,我有一个情况,我正在寻找一个更优雅的解决方案 考虑以下情况 "BKP","bkp","book-to-price" (will represent) BOOK-TO-PRICE "aop","aspect oriented program" (will represent) ASPECT-ORIENTED-PROGRAM i、 e.如果用户输入BKP或BKP或book to price,程序应将其视为book to price。第二个例子(面向方面的程序)也是如此 我有以下解决方案: 解决方

我有一个情况,我正在寻找一个更优雅的解决方案

考虑以下情况

"BKP","bkp","book-to-price" (will represent) BOOK-TO-PRICE

"aop","aspect oriented program" (will represent) ASPECT-ORIENTED-PROGRAM
i、 e.如果用户输入BKP或BKP或book to price,程序应将其视为book to price。第二个例子(面向方面的程序)也是如此

我有以下解决方案:

解决方案:

if (str == "BKP" || str == "bkp" || str == "book-to-price" ) return "BOOK-TO-PRICE".
但我认为还有很多其他更好的解决方案

你们能给我一些建议吗?(最好举个例子)


我使用C 3和dotnet框架3.5

我会考虑使用<代码>字典<代码>,可能从配置文件或数据库表中填充,别名与规范名称关系。使用不区分大小写的密钥比较器。比如说,

var map = new Dictionary<string,string>( StringComparer.OrdinalIgnoreCase );
map.Add( "bkp", "BOOK-TO-PRICE" );
map.Add( "book-to-price", "BOOK-TO-PRICE" );
map.Add( "aop", "ASPECT-ORIENTED-PROGRAM" );
map.Add( "aspect oriented program", "ASPECT-ORIENTED-PROGRAM" );

这正是我的建议。是的,这里也一样;因为字符串是不可变的,所以没有像C中那样的存储开销(与其他方法相比,即使字符串很大)。
var name = map["bkp"];