C# – 寻找一种简单的方法来解析两个不同表示之间的字符串值(数字和英语)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# – 寻找一种简单的方法来解析两个不同表示之间的字符串值(数字和英语),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1886字,纯文字阅读大概需要3分钟。
内容图文
我正在开发一个小帮手应用程序,并想知道是否有更好的方法来完成这一件事 –
我有一个CSV文件,我正在读取我的程序,我正在解析每行中的一个值,从一个数值(总是一个整数,在1到5之间)到一个字符串值,以便在程序中更容易表示.当我保存文件时,我需要从字符串表示转换回数字表示.目前,我通过switch语句执行此操作,但我知道必须有一种更简洁的方法来实现此目的.
我目前使用的函数有两个参数.其中一个参数是一个字符串,可以是我试图解析的那个值的数字表示或字符串表示,另一个值是一个布尔值,告诉函数它应该转换第一个参数的方式.如果boolean参数为true,则转换为数字表示形式,如果为false,则转换为字符串表示形式.这是我解析值的函数:
string ParseRarity(string rarity, bool toNumericalStr)
{
if (toNumericalStr)
{
switch (rarity)
{
case "Very Common":
return "1";
case "Common":
return "2";
case "Standard":
return "3";
case "Rare":
return "4";
case "Very Rare":
return "5";
}
}
else
{
switch (rarity)
{
case "1":
return "Very Common";
case "2":
return "Common";
case "3":
return "Standard";
case "4":
return "Rare";
case "5":
return "Very Rare";
}
}
return "";
}
任何缩短此代码的帮助将不胜感激,所以“谢谢”提前!
解决方法:
我也会给你一个答案,你可以创建一个包含稀有值的静态“存储库”类.下划线存储机制是Dictionary< int,string>.这将强制所有稀有物具有唯一键(int),并且该键可以快速访问.
public static class RarityRepository
{
private static Dictionary<int, string> _values = new Dictionary<int, string>()
{
{ 1, "Very Common" },
{ 2, "Common" },
{ 3, "Standard" },
{ 4, "Rare" },
{ 5, "Very Rare" },
};
public static string GetStringValue(int input)
{
string output = string.Empty; // returns empty string if no matches are found
_values.TryGetValue(input, out output);
return output;
}
public static int GetIntValue(string input)
{
var result = _values.FirstOrDefault(x => string.Compare(x.Value, input, true) == 0);
if (result.Equals(default(KeyValuePair<int,string>)))
{
return -1; // returns -1 if no matches are found
}
return result.Key;
}
}
我做了一个小提琴here,感谢@Ron寻找我的午夜脑代码缺陷!
内容总结
以上是互联网集市为您收集整理的C# – 寻找一种简单的方法来解析两个不同表示之间的字符串值(数字和英语)全部内容,希望文章能够帮你解决C# – 寻找一种简单的方法来解析两个不同表示之间的字符串值(数字和英语)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。