打印列表项

时间:2009-12-25 08:09:28

标签: c# data-structures

List<string> list = new List<string>();    
        list.Add("A");
        list.Add("B");

List<string> list1 = new List<string>();    
        list.Add("a");
        list.Add("b");


    for (int i = 0; i < list.Count; i++)
    {
        // print another list items.
        for (int j = 0; j < list1.Count; j++)
        {
            Console.WriteLine("/" + list[i] + "/" + list1[j]);
        }

    }

我想像这样string tmpS =+ list[i];编码加入下一个列表项togeter。

然后打印tmpS

但编译错误CS0023:运算符'+'不能应用于'string'类型的操作数。

如何打印以下所有项目。(任何排序都可以)

一个 AA 抗体 AAB 阿坝州 AB 阿坝州 ABB ABAB ABBA 乙 巴 BB 巴布 BBA

(大写号码没有交换。小字符应该被转换。并且始终跟随大写号码附加小字符。)

3 个答案:

答案 0 :(得分:3)

这闻起来像家庭作业。

List<string> list = new List<string>();    
list.Add("A");
list.Add("B");

List<string> list1 = new List<string>();    
list.Add("a");
list.Add("b");

string xxx = "";
for (int i = 0; i < list.Count; i++)
{
    xxx += list[i];
    Console.WriteLine(xxx);

    // print another list items.
    for (int j = 0; j < list1.Count; j++)
    {
        Console.WriteLine("/" + list[i] + "/" + list1[j]);
    }

}

答案 1 :(得分:3)

+=而非=+

但是你应该使用StringBuilder。

答案 2 :(得分:3)

很长一段时间我都没有解决纯粹的算法问题!

这个程序应该可以解决问题:

class Program
{
    static void Main(string[] args)
    {
        List<string> uppers = new List<string>();
        uppers.Add("A");
        uppers.Add("B");

        List<string> lowers = new List<string>();
        lowers.Add("a");
        lowers.Add("b");

        List<string> combinedUppers = GetCombinedItems(uppers);
        List<string> combinedLowers = GetCombinedItems(lowers);
        List<string> combinedUppersLowers = GetCombinedList(combinedUppers, combinedLowers);

        foreach (string combo in combinedUppersLowers)
        {
            Console.WriteLine(combo);
        }

        Console.Read();
    }

    static private List<string> GetCombinedItems(List<string> list)
    {
        List<string> combinedItems = new List<string>();

        for (int i = 0; i < list.Count; i++)
        {
            combinedItems.Add(list[i]);

            for (int j = 0; j < list.Count; j++)
            {
                if (list[i] != list[j])
                {
                    combinedItems.Add(String.Format("{0}{1}", list[i], list[j]));
                }
            }
        }

        return combinedItems;
    }

    static private List<string> GetCombinedList(List<string> list1, List<string> list2)
    {
        List<string> combinedList = new List<string>();

        for (int i = 0; i < list1.Count; i++)
        {
            combinedList.Add(list1[i]);

            for (int j = 0; j < list2.Count; j++)
            {
                combinedList.Add(String.Format("{0}{1}", list1[i], list2[j]));
            }
        }

        for (int i = 0; i < list2.Count; i++)
        {
            combinedList.Add(list2[i]);

            for (int j = 0; j < list1.Count; j++)
            {
                combinedList.Add(String.Format("{0}{1}", list2[i], list1[j]));
            }
        }

        return combinedList;
    }
}

问候。


此程序为您提供此输出:

  

一个   AA   AAB   抗体   阿坝州   AB   阿坝州   ABAB   ABB   ABBA   乙   巴   巴布   BB   BBA   BA   BAA   BAAB   BAB   巴巴   一个   AA   αAB内   AB   ABA   AB   ABA   ABAB   ABB   ABBA   b   BA   BAB   BB   BBA   BA   BAA   BAAB   BAB   BABA