写下列表的前3个字母<>在C#中

时间:2017-03-27 03:19:48

标签: c#

从C ++开始学习C#并且只是想知道为什么这段代码不起作用,输出只是很多错误,我看到了Microsoft文档中的另一个例子,他们使用了一些名为{{1}的东西(特别是当使用var时)所以当我尝试使用它时,VS告诉我foreach数据类型不存在(可能是一个丢失的库?)是{{1}的原因不起作用?我应该使用var吗?只是为了写堆栈的前3个字母?我真的无法分辨出什么是错的。实际上,我为我制作的这些文字是无稽之谈..任何帮助都是值得赞赏的。

.Skip()

2 个答案:

答案 0 :(得分:4)

您需要将print_days函数更改为以下内容以获得您期望的结果:

    public void print_days()
    {
        foreach (string day in names_of_days)
        {
            foreach (char c in day.Skip(3))
            {
                Console.Write(c);
            }
            Console.WriteLine();
        }
        Console.WriteLine();
    }

跳过函数会在您的情况下返回IEnumerable<char>,您需要再次迭代它。 要获得前3个字母,您需要执行以下操作:

    public void print_days()
    {
        foreach (string day in names_of_days)
        {

            Console.WriteLine(day.Substring(0,3));
        }
        Console.WriteLine();
    }

答案 1 :(得分:0)

根据@ S.Petrosov,.Substring将获得前三个字符(谨慎使用,因为2个字符的字符串将引发异常......给定列表没有问题,但这个answer已经长度不确定的解决方案)

这个answer提供了关于var的最佳描述,下面给出了关于var相对于样本的一些额外提示。

cout << setw(t) << shape[i]->getType().data() ;