我对C#完全陌生。我试图循环一个短数组,其中数组中的字符串元素放在网站搜索的末尾。代码:
int n = 1;
string[] s = {"firstitem","seconditem","thirditem"}
int x = s.Max(); // note, from my research this should return the maximum value in the array, but this is the first error
x = x + 1
while (n < x)
{
System.Diagnostics.Process.Start("www.website.com/" + b[0]);
b[]++; // this also generates an error "identifier expected"
}
我的编码,逻辑或两者都错了。根据我读过的内容,我应该能够在数组中获取最大值(作为int),然后添加到数组值,而WHILE
循环在数组中添加每个值网站结束(然后停止)。请注意,在第一个错误上,我尝试使用不同的编码方式,如下所示:
int x = Convert.ToInt32(s.Max);
但是,它会产生过载错误。如果我正确地阅读了内容,MAX
应该会在序列中找到最大值。
答案 0 :(得分:6)
foreach(var str in s)
{
System.Diagnostics.Process.Start("www.website.com/" + str);
}
答案 1 :(得分:3)
你有一组字符串。最大的字符串仍然是字符串,而不是int。由于s.Max()
是一个字符串,并且您正在将它分配给int:int x = s.Max();
类型的变量,编译器(正确地)会通知您类型不匹配。您需要将该字符串转换为int。因为,查看你的数据,它们不是整数,我认为没有合理的方法将这些字符串转换成整数,我认为没有合理的解决方案。 “firstitem”应该是什么整数?
如果您只想为数组中的每个项执行一些代码,请使用以下模式之一:
foreach(string item in s)
{
System.Diagnostics.Process.Start("www.website.com/" + item);
}
或
for(int i = 0; i < s.Length; i++)
{
System.Diagnostics.Process.Start("www.website.com/" + s[i]);
}
答案 2 :(得分:1)
x
可能应该是数组的Length
,而不是其中的最大值x
- 在它的末尾,而不是在它之外n
,而不是x
n
应该从0开始,而不是从1 b[0]
,您可能希望使用b[n]
b[]++
可能意味着什么for
或foreach
代替while
。答案 3 :(得分:1)
以下是一张图片,指出您的代码有什么错误:
更正后,它将是:
int n=1;
string[] s= { "firstitem", "seconditem", "thirditem" };
int x=s.Length;
while(n<x) {
System.Diagnostics.Process.Start("www.website.com/"+s[n]);
n++; // or ++n
}
我们可以使它更具语义性:
var items=new[] { "firstitem", "seconditem", "thirditem" };
for(int index=1, count=items.Length; index<count; ++index)
Process.Start("www.website.com/"+items[index]);
如果起始顺序无关紧要,我们可以使用foreach
代替,我们可以使用Linq使代码更简单:
var list=(new[] { "firstitem", "seconditem", "thirditem" }).ToList();
list.ForEach(item => Process.Start("www.website.com/"+item));
我们可能经常以另一种形式写作:
foreach(var item in new[] { "firstitem", "seconditem", "thirditem" })
Process.Start("www.website.com/"+item);
答案 4 :(得分:0)
来自样本
var processList = (new string[]{"firstitem","seconditem","thirditem"})
.Select(s => Process.Start("www.website.com/" + s))
.ToList();
这是一个输出到控制台的测试版本
(new string[] { "firstitem", "seconditem", "thirditem" })
.Select(s => { Console.WriteLine(@"www.website.com/" + s); return s; })
.ToList();
注意:Select需要返回类型,。ToList()强制执行评估。