值列表转为字符串列表

10 浏览
0 Comments

值列表转为字符串列表

如何进行转换:\n

var values = new List { 1, 5, "eeE", MyEnum.Value };

\n转换为\n

var stringValues = new List { "1", "5", "eeE", MyEnum.Value.ToString() };

\n但要快速完成?

0
0 Comments

问题的出现原因是用户想要将一个包含对象的列表(List of values)转换为一个包含字符串的列表(List of strings)。用户已经尝试使用LINQ进行转换,并提供了相应的代码。然而,用户希望的结果是一个`List`,而不是一个`List`,这一点并不清楚。此外,建议用户使用`IEnumerable<>`而不是转换成一个`List<>`来进行操作。为了解决这个问题,可以使用LINQ的`Select`方法将对象转换为字符串,并返回一个`IEnumerable`。如果用户需要经常进行这种类型的转换,可以创建一个扩展方法`AsStrings`,将对象列表转换为字符串列表。

下面是解决该问题的代码示例:

var stringValues = values.Select(v => v.ToString());

如果用户需要更复杂的字符串转换,可以使用`Convert.ToString()`方法,该方法会首先查找`IConvertible`和`IFormattable`接口,然后才调用`ToString()`方法。

var stringValues = values.Select(v => Convert.ToString(v));

用户也可以创建一个扩展方法`AsStrings`来将对象列表转换为字符串列表:

static class ListExtensions
{
   public static IEnumerable AsStrings(this List values)
   {
      return values.Select(v => v.ToString());
   }
}

然后可以像这样使用它:

var stringValues = values.AsStrings();

以上是解决将包含对象的列表转换为字符串列表的方法。用户应根据自己的需求选择适合的解决方案。

0
0 Comments

问题的出现原因是,原始的列表包含了不同类型的值,包括整数、字符串和颜色对象。而需要将这个列表转换为一个只包含字符串类型的列表。

解决方法是使用LINQ的Select方法对原始列表进行遍历,并使用ToString方法将每个元素转换为字符串。然后使用ToList方法将转换后的结果存储到新的列表中。

代码中的第一段是使用Select和ToList方法将原始列表的每个元素转换为字符串,并将结果存储到stringValues列表中。

第二段代码是将转换后的结果存储到一个类型为object的列表中。这是因为在原始列表中存在不同类型的值,转换后的列表中的元素类型也会保留原始类型。

最后的评论中提到,问题的出现可能是因为提问者不清楚自己需要什么或者没有正确表达自己的意图。对于这种情况,回答者已经根据问题的要求进行了修改。

通过使用LINQ的Select和ToList方法,可以将一个包含不同类型值的列表转换为一个只包含字符串类型的列表。这种转换可以根据实际需求来选择是否保留原始类型。

0