6

对象列表

List<object>似乎在上面,我想将其转换为List<string>.

我怎样才能转换它?

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

4

6 回答 6

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

编辑

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

谢谢斯科特张伯伦

获取第一个对象数组

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)));
于 2013-10-17T20:07:09.527 回答
6
var stringList = yourObjectList.OfType<string>().ToList();

记得添加命名空间System.Linq;

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

于 2013-10-17T20:03:11.917 回答
3

试试这个

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();
于 2013-10-17T20:04:28.010 回答
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();

这将在每个剧院进行每次降​​神会,并将其合并到一个主列表中。

于 2013-10-17T20:05:02.797 回答
1

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

myObjectList.Cast<string>();

或者过滤所有非字符串

myObjectList.OfType<string>();
于 2013-10-17T20:03:02.277 回答
-4

铸造像:

var list = (List<String>) listObjects.
于 2013-10-17T20:03:57.773 回答