如何从静态字符串数组中提取

时间:2013-10-11 02:42:36

标签: c#

static string[] myFriends = new string[] {"Robert","Andrew","Leona","Ashley"};

如何从这个静态字符串数组中提取名称,以便我可以在不同的行上单独使用它们?如:

罗伯特坐在椅子上1

安德鲁坐在椅子上2

Leona坐在椅子上3

阿什利坐在椅子上4

我猜我必须将它们分配给值,然后在WriteLine Command中,我会为每个对应的名称输入{1},{2},{3}等?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Friends
{
class Program
{
    public void count(int inVal)
    {
        if (inVal == 0)
            return;
        count(inVal - 1);

        Console.WriteLine("is sitting in chair {0}", inVal);
    }

    static void Main()
    {
        Program pr = new Program();
        pr.count(4);
    }

    static string[] myStudents = new string[] {"Robert","Andrew","Leona","Ashley"};

}
}

我想将这些名字添加到“坐在椅子上”一行。

2 个答案:

答案 0 :(得分:1)

我认为forforeach作为@TGH提及是要走的路。它不是一个很好的递归使用,虽然它听起来像一个教科书练习而不是工业上使用递归。

如果您希望按原样修复您的使用递归,请将方法更改为:

public void count(int inVal)
{
    if (inVal == 0)
        return;
    count(inVal - 1);

    // arrays are 0-based, so the person in chair 1 is at array element 0
    Console.WriteLine("{0} is sitting in chair {1}", myStudents[inVal-1], inVal);
}

答案 1 :(得分:0)

使用Linq扩展将代码简化为:

int chairNo =1;
myFriends.ToList().ForEach(x =>  Consol.WriteLine(string.Format("{0} is sitting in chair {1}", x, chairNo++)));

请记住将以下内容放在首位; 使用System.Linq;