C# 中如何从List集合中提取第一个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 中如何从List集合中提取第一个值相关的知识,希望对你有一定的参考价值。
参考技术A 索引位0的就是第一个.List list=new List();
list="数据集";
list[0]就是第一个值
NET问答: 如何使用 C# 直接从 JSON String 中提取特定值 ?
咨询区
Alon Shmiel:
我有一个 string,现在我想从中提取出一些值,格式大概如下:
string1:
"{\\r\\n \\"id\\": \\"100000280905615\\",
\\r\\n \\"name\\": \\"Jerard Jones\\",
\\r\\n \\"first_name\\": \\"Jerard\\",
\\r\\n \\"last_name\\": \\"Jones\\",
\\r\\n \\"link\\": \\"https://www.facebook.com/Jerard.Jones\\",
\\r\\n \\"username\\": \\"Jerard.Jones\\",
\\r\\n \\"gender\\": \\"female\\",
\\r\\n \\"locale\\": \\"en_US\\"\\r\\n}"
string2:
"{\\r\\n \\"id\\": \\"100000390001929\\",
\\r\\n \\"name\\": \\"\\\\u05d1\\\\u05d2\\\\u05e8\\\\u15dc\\\\u25d9 \\\\u05d1\\\\u05e8\\\\u05d5\\\\u05e9\\",
\\r\\n \\"first_name\\": \\"\\\\u05d4\\\\u05d2\\\\u05e7\\\\u02dc\\\\u05d9\\",
\\r\\n \\"last_name\\": \\"\\\\u05d1\\\\u05e8\\\\u05d5\\\\u05e9\\",
\\r\\n \\"link\\": "https://www.facebook.com/people/\\\\u05d2\\\\u05d1\\\\u05e@\\\\u05dc\\\\u05d9-\\\\u05d1\\\\u05e8\\\\u05d4\\\\u05e9/100000390001929\\",
\\r\\n \\"gender\\": \\"female\\",
\\r\\n \\"locale\\": \\"he_IL\\"\\r\\n}"
请问我如何从中提取 id
,first_name
,last_name
等等。。。
回答区
Rubens Mariuzzo:
可以看出你的 string 是一个 json 格式,你可以通过 JSON.NET
将它转为 object,下面是一个将 string 转为动态类型的小例子,仅供参考:
string source = "{\\r\\n \\"id\\": \\"100000280905615\\", \\r\\n \\"name\\": \\"Jerard Jones\\", \\r\\n \\"first_name\\": \\"Jerard\\", \\r\\n \\"last_name\\": \\"Jones\\", \\r\\n \\"link\\": \\"https://www.facebook.com/Jerard.Jones\\", \\r\\n \\"username\\": \\"Jerard.Jones\\", \\r\\n \\"gender\\": \\"female\\", \\r\\n \\"locale\\": \\"en_US\\"\\r\\n}";
dynamic data = JObject.Parse(source);
Console.WriteLine(data.id);
Console.WriteLine(data.first_name);
Console.WriteLine(data.last_name);
Console.WriteLine(data.gender);
Console.WriteLine(data.locale);
Ligabb:
可以使用 DataContractJsonSerializer
类帮你实现 string 到 object 的转换,首先定义如下类:
public class Data
{
public string Id {get; set;}
public string Name {get; set;}
public string First_Name {get; set;}
public string Last_Name {get; set;}
public string Username {get; set;}
public string Gender {get; set;}
public string Locale {get; set;}
}
我不敢100%保证,如果序列化不了,可以在字段上标注 [DataContract]
和 [DataMember]
,然后就可以序列化和反序列化的操作啦。
private static readonly XmlObjectSerializer Serializer = new DataContractJsonSerializer(typeof(Data));
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
using(var stream = new MemoryStream(byteArray))
{
(Data)Serializer.ReadObject(stream);
}
点评区
从 jsonstring 中提取 value,逃不过使用 json序列化器,不过挺有意思的是:.NET曾出现过多个json序列化工具,比如:JavaScriptSerializer,还有针对 WCF 的 DataContractJsonSerializer,还有现在 .netcore3
出来的大一统 System.Text.Json.JsonSerializer
,眼花缭乱是不是哈????
以上是关于C# 中如何从List集合中提取第一个值的主要内容,如果未能解决你的问题,请参考以下文章