鉴于此字符串:
“['某个值','另一个值','值三']”
将它转换为数组的最有效方法是什么?或者任何可枚举的类型?
编辑:数组将包含内部字符串值:
arr[0] = some value
arr[1] = another value
arr[2] = value three
答案 0 :(得分:4)
这是json-array,对此
使用http://james.newtonking.com/json public static T JsonDeserialize<T> (string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
答案 1 :(得分:0)
好吧,如果你可以假设每个项目都没有逗号,那么它可以像以下一样直接:
const string value = "['some value','another value','value three']";
var array =
value
.Substring(1, value.Length - 2)
.Split(',')
.Select(item => item.Substring(1, item.Length - 2))
.ToArray();
如果你不能假设没有逗号,但可以假设没有撇号 - 逗号 - 撇号序列,那么你可以这样做:
const string value = "['some value','another value','value three']";
var array =
value
.Substring(1, value.Length - 2)
.Split(new[] { "','" }, StringSplitOptions.RemoveEmptyEntries)
.ToArray();
array[0] = array[0].Substring(1, array[0].Length - 1);
int x = array.Length - 1;
array[x] = array[x].Substring(0, array[x].Length - 1);
否则你的选择是:
答案 2 :(得分:0)
这只是一种可能的方式:
var str = "['some value','another value','value three']";
// eliminate '[' and ']'
str = str.Substring(1, str.Length - 2);
// remove '
str = str.Replace("'", string.Empty);
// split it in a array
var items = str.Split(',');
有关拆分字符串的更多信息,您可以使用die MSDN
希望它有所帮助。
答案 3 :(得分:0)
string s = "['some value','another value','value three']";
s=s.Replace("[", "").Replace("'","").Replace ("]","") ;
List<string> names = s.Split(',').ToList<string>();