我是C#的初学者和一般的新手。下面的程序是按字母顺序打印最长的子字符串。 if循环找到这些子字符串。我遇到的问题是public static void Max,我想从字符串中打印最大值。该字符串包含if循环中找到的子字符串的长度值。然而,Max正在打印不在列表中且没有意义的大数字。 Max最终将返回max,我将仅用于打印长度与Max匹配的子字符串。代码如下。
public static void Max(string list)
{
//prints max lenght
int maxi = 0;
{
{
for (int a = 0; a < list.Length-1; a = a + 1)
{
if (list[a] > maxi)
maxi = list[a];
// Console.WriteLine(maxi);
}}}}
原始列表值为: List Value
最大功能打印: Max prints
答案 0 :(得分:1)
您的Max
函数需要string
作为输入。这很奇怪。更好的是接受List<int>
:
public static int Max(List<int> list) {
int max = 0;
for (var x in list) {
if (x > max) {
max = x;
}
}
return max;
}
Console.WriteLine(Max(list));
但为什么不只是使用内置功能:
Console.WriteLine(list.Max());