没有得到正确的输出

时间:2019-10-03 18:11:20

标签: c#

我有一个输入string作为“ thisIsMyNameNishant”,我希望输出为 “ this_Is_My_Name_Nishant”。我想使用Lambda表达式解决此问题。

我使用lambda表达式编写了以下代码,但没有得到正确的输出。

string str = "thisIsMyNameNishant";
List<char> newlist = str.ToList();
IEnumerable<string> queryvalue = newlist.Select((x, y) =>
{
    if (x.ToString().ToUpper() == y.ToString().ToUpper())
    {

        return "_" + y.ToString();
    }
    else
    {

        return y.ToString();
    }
});

foreach (string c in queryvalue)
{
    Console.Write(Convert.ToString(c));
}
Console.ReadLine();

2 个答案:

答案 0 :(得分:1)

您首先可以在不使用lambda的情况下进行尝试:

string result = "";

for ( int index = 0; index < str.Length; index++ )
{
  if (char.IsUpper(str[index]) && index != 0)
    result += '_';
  result += str[index];
}

Console.Write(result);

答案 1 :(得分:0)

这是我使用lambda编写的代码

string str = "thisIsMyNameNishant";
            var queryvalue = str.Select(x =>
            {
                if (char.IsUpper(x))
                    return "_" + x.ToString();

                else
                    return x.ToString();
            });

            foreach (string c in queryvalue)
            {
                Console.Write(Convert.ToString(c));
            }

当我阅读“选择”的定义时,我就很清楚了。