[英]Call Method to LINQ in C#
您好,这是我的C#作业
我正在尝试编写一个程序,它将用户输入的数据用于IE的名字,姓氏等几件事。将其放入列表中,然后将每个单词的首字母大写。
我已经搜寻了两天,试图找出答案,但是没有运气。 我有要转到列表的数据,可以显示它没有问题,但是在弄清楚如何在LINQ语句中调用该方法时遇到了问题。
我必须在程序中使用UppercaseWords方法。 我无法获得的是如何在LINQ中调用它
**这是我的主要方法***
// convert first letter of each word to uppercase var MakeCap = from values in PersonInfoS let value = values.ToUpper() select value;
**这低于主要**
public static string UppercaseWords(string Value)
{
char[] array = Value.ToCharArray();
if (array.Length >= 1)
{
if (char.IsLower(array[0]))
{
array[0] = char.ToUpper(array[0]);
}
}
for (int i = 1; i < array.Length; i++)
{
if (array[i - 1] == ' ')
{
if (char.IsLower(array[i]))
{
array[i] = char.ToUpper(array[i]);
}
}
}
return new string(array);
} // end UppercaseWords
我尝试了很多不同的方法使其正常工作。 我发布了唯一一个不会崩溃的版本,即使其中没有指向UppercaseWords的链接。
我现在也都在一堂课上了。 我确实尝试过使用两个类,但这对我没有任何帮助。
如果有人能朝正确的方向推动我,我将不胜感激,因为我没有主意。
预先感谢您的时间
只需更改此:
let value = values.ToUpper()
对此:
let value = UppercaseWords(values)
顺便说一句,即使可以,在这种情况下也不需要使用let
子句。 这样您的整个查询可以变成:
var makeCap = from values in PersonInfoS
select UppercaseWords(values);
这种方法的语法在这种情况下更简单。
var cappedWords = PersonInfoS.Select(UppercaseWords);
另外,您应该使用该UppercaseWords
方法。 我的建议是先像这样分割字符串: value.Split(' ')
这样就可以得到一个单词数组。 然后,您可以遍历这些单词,获取第一个字符, ToUpper
,然后在所有内容都Join(' ')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.