C#对象列表到字符串列表

时间:2013-10-17 20:01:35

标签: c# object casting type-conversion

object list

我上面有List<object>,我想将其转换为List<string>

我该如何转换它?

我需要List<string>有6项(11:00,13:45,......等)

6 个答案:

答案 0 :(得分:14)

var mylist = myObjectList.ConvertAll(x => x.ToString());

修改

  var mylist = myObjectList.ConvertAll(x => Convert.ToString(x));
谢谢Scott Chamberlain

获取第一个对象数组

var mylist = (myObjectList.First() as object[]).ToList()
                .ConvertAll(x=>Convert.ToString(x));

将剩余部分添加到列表中。

mylist.AddRange(mylist.GetRange(1,myObjectList.Count-2).ConvertAll(x=>Convert.ToString(x)));

答案 1 :(得分:4)

var stringList = yourObjectList.OfType<string>().ToList();

请记住添加名称空间System.Linq;

需要OfType将数组转换为array<T>,这是为了与LINQ一起使用所必需的

答案 2 :(得分:2)

试试这个

List<string> stringlist = objectList.Cast<string>()
                                    .ToList();

如果您不确定这些元素是字符串,可以使用Select

List<string> stringlist = objectList.Select(x=> x.ToString())
                                    .ToList();

要在空值的情况下避免NullReferenceException,请尝试以下

List<string> stringlist = objectList.Where(x=> x != null)
                                    .Select(x=> x.ToString())
                                    .ToList();

答案 3 :(得分:2)

使用LINQ这很容易。如果您确定它们都是字符串,您只需执行

即可
int i = //Some code that sets i, like a for loop
var oldList = seanceInfo.theatre[i].seances;
List<string> newList = oldList.Cast<string>().ToList();

如果您不确定所有对象都是字符串,则需要执行某种转换,但这很简单

List<string> newList = oldList.Select(o => Convert.ToString(o)).ToList();

来自您的评论:“各种各样的展位为List<object>,第一个展位索引为object[]。我需要这些项目。”,我认为你真正的 想要的可能是SelectMany

List<string> info = seanceInfo.theatre.SelectMany(x => x.seances).Select(x => Convert.ToString(x)).ToList();

这将采用每个剧院的每个集合并将其合并到一个主列表中。

答案 4 :(得分:1)

您可以使用LinQ简单地投射它。

myObjectList.Cast<string>();

或过滤所有非字符串

myObjectList.OfType<string>();

答案 5 :(得分:-4)

施放像:

var list = (List<String>) listObjects.