[英]Convert string representation of an array into an array - C#
給定此字符串:
“ [[某個價值”,“另一個價值”,“三個價值”]”
將其轉換為數組的最有效方法是什么? 還是任何可枚舉類型?
編輯:數組將包含內部字符串值:
arr[0] = some value
arr[1] = another value
arr[2] = value three
這是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;
}
好吧,如果您可以假設每個項目都沒有逗號,那么它可能會像下面這樣簡單:
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);
否則,您的選擇將是:
這只是一種可能的方法:
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(',');
有關拆分字符串的更多信息,可以使用MSDN
希望能幫助到你。
string s = "['some value','another value','value three']";
s=s.Replace("[", "").Replace("'","").Replace ("]","") ;
List<string> names = s.Split(',').ToList<string>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.