C# 使用自定义条件和参数拆分字符串
将这些字符串拆分为C# 使用自定义条件和参数拆分字符串,c#,.net,string,linq,split,C#,.net,String,Linq,Split,将这些字符串拆分为列表的最佳方法是什么 比方说,我想获得定义为的SampleObject列表: class SampleObject { public string Letter { get; set; } public string FirstNumber { get; set; } public string SecondNumber{ get; set; } } 为此,我们使用Json.Net的方法。这是他们的web帮助中的示例: string json = @"
列表的最佳方法是什么
比方说,我想获得定义为的SampleObject列表:
class SampleObject
{
public string Letter { get; set; }
public string FirstNumber { get; set; }
public string SecondNumber{ get; set; }
}
为此,我们使用Json.Net的方法。这是他们的web帮助中的示例:
string json = @"[
'Small',
'Medium',
'Large'
]";
JArray a = JArray.Parse(json);
可以创建对象的实例,然后从数组中的每个元素加载
下面是一个使用示例字符串和类的工作示例:
JArray aAllValues = JArray.Parse(json);
var SampleObjectCollection = new List<SampleObject>();
foreach (JArray aValues in aAllValues)
{
var oSampleObject = new SampleObject();
int index = 0;
foreach (var oProperty in aValues.Children())
{
switch (index)
{
case 0:
oSampleObject.Letter = oProperty.Value<String>();
break;
case 1:
oSampleObject.FirstNumber = oProperty.Value<String>();
break;
case 2:
oSampleObject.SecondNumber = oProperty.Value<String>();
break;
}
index++;
}
SampleObjectCollection.Add(oSampleObject);
}
JArray aAllValues=JArray.Parse(json);
var SampleObjectCollection=new List();
foreach(所有价值中的JArray aValues)
{
var oSampleObject=新的SampleObject();
int指数=0;
foreach(aValues.Children()中的var oProperty)
{
开关(索引)
{
案例0:
oSampleObject.Letter=oProperty.Value();
打破
案例1:
oSampleObject.FirstNumber=oProperty.Value();
打破
案例2:
oSampleObject.SecondNumber=opProperty.Value();
打破
}
索引++;
}
添加(oSampleObject);
}
我们使用Json.Net的方法来实现这一点。这是他们的web帮助中的示例:
string json = @"[
'Small',
'Medium',
'Large'
]";
JArray a = JArray.Parse(json);
可以创建对象的实例,然后从数组中的每个元素加载
下面是一个使用示例字符串和类的工作示例:
JArray aAllValues = JArray.Parse(json);
var SampleObjectCollection = new List<SampleObject>();
foreach (JArray aValues in aAllValues)
{
var oSampleObject = new SampleObject();
int index = 0;
foreach (var oProperty in aValues.Children())
{
switch (index)
{
case 0:
oSampleObject.Letter = oProperty.Value<String>();
break;
case 1:
oSampleObject.FirstNumber = oProperty.Value<String>();
break;
case 2:
oSampleObject.SecondNumber = oProperty.Value<String>();
break;
}
index++;
}
SampleObjectCollection.Add(oSampleObject);
}
JArray aAllValues=JArray.Parse(json);
var SampleObjectCollection=new List();
foreach(所有价值中的JArray aValues)
{
var oSampleObject=新的SampleObject();
int指数=0;
foreach(aValues.Children()中的var oProperty)
{
开关(索引)
{
案例0:
oSampleObject.Letter=oProperty.Value();
打破
案例1:
oSampleObject.FirstNumber=oProperty.Value();
打破
案例2:
oSampleObject.SecondNumber=opProperty.Value();
打破
}
索引++;
}
添加(oSampleObject);
}
您可以使用Json.Net将其反序列化为动态对象,然后填充自定义对象
dynamic items = JsonConvert.DeserializeObject(jsonString);
var list = new List<SampleObject>();
foreach (var item in items)
{
var sampleObject = new SampleObject
{
Letter = item[0].ToString(),
FirstNumber = item[1].ToString(),
SecondNumber = item[2].ToString()
}
list.Add(sampleObject);
}
dynamic items=JsonConvert.DeserializeObject(jsonString);
var list=新列表();
foreach(项目中的var项目)
{
var sampleObject=新的sampleObject
{
字母=项[0]。ToString(),
FirstNumber=项[1]。ToString(),
SecondNumber=项目[2]。ToString()
}
list.Add(sampleObject);
}
您可以使用Json.Net将其反序列化为动态对象,然后填充自定义对象
dynamic items = JsonConvert.DeserializeObject(jsonString);
var list = new List<SampleObject>();
foreach (var item in items)
{
var sampleObject = new SampleObject
{
Letter = item[0].ToString(),
FirstNumber = item[1].ToString(),
SecondNumber = item[2].ToString()
}
list.Add(sampleObject);
}
dynamic items=JsonConvert.DeserializeObject(jsonString);
var list=新列表();
foreach(项目中的var项目)
{
var sampleObject=新的sampleObject
{
字母=项[0]。ToString(),
FirstNumber=项[1]。ToString(),
SecondNumber=项目[2]。ToString()
}
list.Add(sampleObject);
}
它看起来像JSON。也许你应该使用JSON解析器?是的。它是一个没有数据键名的JSON
@MarcinJuraszek如果您不能使用JSON解析器,则正则表达式比拆分更好。@lexeRoy尝试将其反序列化为string[][]
array,然后将该数组转换为类实例。@MarcinJuraszek已经尝试过,它会提示无法将当前JSON对象(例如,{“name”:“value”})反序列化为'System.string[]'因为类型需要JSON数组(例如[1,2,3])才能正确反序列化。
。昨天我已经发布了一个关于用键名解析JSON的问题,但我没有幸运地收到任何见解。它看起来像JSON。也许你应该使用JSON解析器?是的。它是一个没有数据键名的JSON
@MarcinJuraszek如果您不能使用JSON解析器,则正则表达式比拆分更好。@lexeRoy尝试将其反序列化为string[][]
array,然后将该数组转换为类实例。@MarcinJuraszek已经尝试过,它会提示无法将当前JSON对象(例如,{“name”:“value”})反序列化为'System.string[]'因为类型需要JSON数组(例如[1,2,3])才能正确反序列化。
。昨天我已经发布了一个关于使用键名解析JSON的问题,但我没有幸运地收到任何见解。无法反序列化此问题,因为数组上下文中没有包含键名。我能够在使用您的测试数据进行的测试中使其工作。对不起,我忘了使用您的动态。威尔+1这个,因为它也在工作。谢谢你,伙计!无法对此进行反序列化,因为数组上下文中未包含键名。我在使用测试数据进行的测试中能够使其正常工作。对不起,我忘了使用动态。威尔+1这个,因为它也在工作。谢谢你,伙计!