例如,有一个 string str =" [2,3,4,5]" 如何将这个类型字符串数组转换为一个列表,我可以在列表中获取ushort类型的每个元素? 字符串得到值" [2,3,4,5]"来自ruby脚本。
答案 0 :(得分:1)
使用linq你可以像
那样做var numbers = str.Where(y=>Char.IsDigit(y)).Select(p=>UInt16.Parse(p.ToString())).ToArray();
答案 1 :(得分:1)
实际上非常简单。您需要做的就是编写一个解析字符串并将其拆分的方法。以下是 NO 错误检查或优化的基本示例。命名约定纯粹是出于理解目的。
List <ushort> ConvertToUShortList (string arrayText)
{
var result = new List<ushort> ();
var bracketsRemoved = arrayText.Replace ("[", "").Replace ("]", "");
var numbersSplit = bracketsRemoved.Split ( new string[] {","}, System.StringSplitOptions.None);
foreach (var number in numbersSplit)
{
result.Add (ushort.Parse (number));
}
return result;
}
由于我给出的名字,我不需要在这个方法中解释任何东西。如果你什么都不懂,请告诉我,我会为你澄清一下。
答案 2 :(得分:1)
另一种方法(更多检查):
class Program
{
static void Main(string[] args)
{
var str = "[1,2,3,4,5,6,7,8,9]";
var x = FromRubyArray(str);
Console.WriteLine(str);
Console.WriteLine(string.Join("-", x));
Console.ReadLine();
}
public static List<ushort> FromRubyArray(string stra)
{
if (string.IsNullOrWhiteSpace(stra)) return new List<ushort>();
stra = stra.Trim();
stra = stra.Trim('[', ']');
return stra
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(s => Convert.ToUInt16(s))
.ToList();
}
}
答案 3 :(得分:1)
因为这个字符串使用的是&#34;类似Json的&#34;格式,您可以使用此代码:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var array = serializer.Deserialize<ushort[]>("[2,3,4,5]");
您只需要引用System.Web.Extensions程序集
答案 4 :(得分:1)
使用Newtonsoft的Json.net(http://www.newtonsoft.com/json)
的另一种优雅方式 var ushortArray = JsonConvert.DeserializeObject<List<ushort>>(myString);
答案 5 :(得分:-1)
您可以执行类似
的操作List<ushort> myUshorts = new List<ushort>("[200,3,4,5]".Trim('[', ']').Split(',').Select(ushort.Parse));
如果你知道输出的确切方式。