我可以吗。来一个字符串[]?

时间:2018-03-27 15:55:21

标签: c# .net linq

我有一个参数userSearch.Expand,其中Expand属性是string[]。我想将此string[]中的所有值转换为大写。我希望做一些像

这样的事情
userSearch.Expand.ForEach(x => x = x.ToUpper());

但看起来.ForEach()上没有string[]

是否有针对此方法或简化方法的解决方法或我是否需要为此恢复更基本的循环?

4 个答案:

答案 0 :(得分:3)

您可以使用Select代替(假设您要将数组转换为大写并使用它):

var lowercaseArray = new[] { "one", "two", "three" };
var uppercaseArray = lowercaseArray.Select(x => x.ToUpper()).ToArray();

答案 1 :(得分:1)

您应该重新分配您的值或创建一个新变量:

var userSearchUpper = userSearch.Select(s => s.ToUpperInvariant()).ToArray();

然后你会在上层不变文化中收到一个新的字符串数组。

答案 2 :(得分:0)

您可以使用LINQ创建一个新数组来替换现有数组。

{{1}}

答案 3 :(得分:0)

不,foreach仅用于List<T>。 您可以阅读有关ForEach()的更多信息。

但你可以使用:

1)自定义ForEach:

    public static void ForEach<T>(this IEnumerable<T> collection, Action<T> action)
    {
        foreach (var item in collection)
            action(item);
    }

2)或者,如果你想在这个容器中替换值:

    userSearch = userSearch.Select(s => s.ToUpper()).ToArray();