一、List转换成字符串有哪些方法
List作为c#中非常常用的数据结构,在进行转换成字符串的时候也是非常常见的操作。下面将介绍几种常用的方法:
1.使用string.Join()方法
List list = new List(){"a", "b", "c"}; string str = string.Join("", list); Console.WriteLine(str); //"abc"
可以看到,我们利用string.Join()方法实现了将List转换成字符串,其中第一个参数是自定义的分隔符,如果不需要分隔符可以传入一个空字符串。
2.使用StringBuilder类
List list = new List(){"hello", "world", "!"}; StringBuilder sb = new StringBuilder(); foreach(string s in list) { sb.Append(s); } string str = sb.ToString(); //"helloworld!"
利用StringBuilder类可以实现对List的遍历和操作,将每一个元素拼接成字符串。
3.使用Lambda表达式
List list = new List(){"1", "2", "3"}; string str = ""; list.ForEach(item => str += item); Console.WriteLine(str); //"123"
使用Lambda表达式可以利用List的ForEach方法实现对每一个元素进行操作,再将结果拼接成字符串。
二、List中含有对象如何转换成字符串
有时候,我们的List中不仅仅存储了字符串,还有一些自定义的对象。这时候,我们就需要重写ToString()方法。
class Person { public string Name {get; set;} public int Age {get; set;} public override string ToString() { return Name + " " + Age; } } List list = new List() { new Person(){Name="Tom", Age=20}, new Person(){Name="Jack", Age=22}, new Person(){Name="Lily", Age=18}, }; StringBuilder sb = new StringBuilder(); foreach(Person p in list) { sb.Append(p.ToString()); } string str = sb.ToString(); //"Tom 20Jack 22Lily 18"
可以看到,我们在Person类中重写了ToString()方法,在遍历List的时候直接调用ToString()方法即可将对象转换成字符串。
三、List转换成Json格式字符串
在进行Web开发时,我们通常需要将List转换成Json格式字符串传递给前端以便渲染。这时候,我们可以使用Json.Net库。
1.将List转换成Json字符串
List list = new List() { new Person(){Name="Tom", Age=20}, new Person(){Name="Jack", Age=22}, new Person(){Name="Lily", Age=18}, }; string str = JsonConvert.SerializeObject(list); Console.WriteLine(str);//"[{\"Name\":\"Tom\",\"Age\":20},{\"Name\":\"Jack\",\"Age\":22},{\"Name\":\"Lily\",\"Age\":18}]"
可以看到,我们利用了Json.Net库中的JsonConvert.SerializeObject()方法将List转换成了Json格式的字符串。
2.将Json字符串转换成List
string str = "[{\"Name\":\"Tom\",\"Age\":20},{\"Name\":\"Jack\",\"Age\":22},{\"Name\":\"Lily\",\"Age\":18}]"; List list = JsonConvert.DeserializeObject<List>(str); foreach(Person p in list) { Console.WriteLine(p.Name + " " + p.Age); }
与将List转换成Json字符串相反,我们使用JsonConvert.DeserializeObject()方法将Json字符串转换成List。
四、List转换成XML格式字符串
类似于Json转换,我们将List转换成XML格式字符串也是非常常见的操作。在这里我们可以使用XmlSerializer类。
1.将List转换成XML格式字符串
List list = new List() { new Person(){Name="Tom", Age=20}, new Person(){Name="Jack", Age=22}, new Person(){Name="Lily", Age=18}, }; XmlSerializer xs = new XmlSerializer(typeof(List)); using(StringWriter sw = new StringWriter()) { xs.Serialize(sw, list); string str = sw.ToString(); Console.WriteLine(str); // // // // Tom // 20 // // // Jack // 22 // // // Lily // 18 // // }
可以看到,我们使用XmlSerializer.Serialize()方法将List转换成了XML格式字符串。
2.将XML字符串转换成List
string str = @" Tom 20 Jack 22 Lily 18 "; XmlSerializer xs = new XmlSerializer(typeof(List)); using(StringReader sr = new StringReader(str)) { List list = (List)xs.Deserialize(sr); foreach(Person p in list) { Console.WriteLine(p.Name + " " + p.Age); } }
与将List转换成XML字符串相反,我们使用XmlSerializer.Deserialize()方法将XML字符串转换成List。
总结
通过以上的介绍,我们可以看到c#中List转换成字符串的方法是非常丰富和灵活的,我们可以根据实际的需求选择不同的转换方式,从而更好的实现我们的业务逻辑。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238693.html