我上面有List<object>
,我想将其转换为List<string>
。
我该如何转换它?
我需要List<string>
有6项(11:00,13:45,......等)
答案 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.