如何遍历字符串项目列表并根据某些条件插入另一个字符串项目?

时间:2019-10-25 19:00:19

标签: c# sharepoint

让我们说我在以下列表中有一个String项列表: “苹果”, “杏”, “香蕉”, “蓝莓”, “图”, “葡萄” ...

如您所见,我们有几个A项目,几个B项目,然后我们先跳过C D和E,然后再选择F和G项目。我需要帮助弄清楚如何遍历此列表,并在A项之前插入“ A”,然后在B项之前插入“ B”,依此类推...但是重要的是即使没有C,D ,或E项,我仍然需要插入“ C”,“ D”和“ E”吗?因此,当打印到屏幕上时,它将看起来像这样……

  • “ A”
  • “苹果”
  • “杏”
  • “ B”
  • “香蕉”
  • “蓝莓”
  • “ C”
  • “ D”
  • “ E”
  • “ F”
  • “无花果”
  • “ G”
  • “葡萄”

有没有办法用香草C#做到这一点?

3 个答案:

答案 0 :(得分:0)

这是我的处理方式:

string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
List<string> listOfWords = new List<string>
{
    "Appricot",
    "Apple",
    ...
};

foreach (string letter in letters)
{
    Console.WriteLine(letter);
    List<string> words = listOfWords.Where(word => word[0].ToUpper().Eqauls(letter)).ToList();
    words.ForEach(word => Console.WriteLine(word));
}

这将遍历letters中的所有字母并将它们打印到控制台。

然后它将把listOfWords中的所有单词以字母开头并打印出来。

希望这会有所帮助:)

答案 1 :(得分:0)

我相信这可以通过其他许多更好的方法来完成,但最简单的方法是-


List<string> prods = new List<string>();

            prods.AddRange(new List<string>() {
                "Apple",
                "Apricot",
                "Banana",
                "Blueberry",
                "Fig",
                "Grape"
            });

            //Considering that the list is already sorted alphabetically
            //or you can use prods.Sort();
            List<string> newList = new List<string>();

             string alphabets = "abcdefghijklmnopqrstuvwxyz";
            foreach(char a in alphabets)
            {
                newList.Add(a.ToString());
                foreach (var item in prods)
                {
                    if (item.StartsWith(a.ToString()) || item.StartsWith(a.ToString().ToUpper()))
                    {
                        Console.WriteLine($"adding {item} to  newlist");
                        newList.Add(item);
                    }
                }
            }
            foreach (var item in newList)
            {
                Console.WriteLine(item);
            }


            Console.ReadKey();

请让我知道它如何为您服务。

答案 2 :(得分:0)

好吧,这看起来真的很简单。

var yourList = new List<string>() { 
    "Apple", "Apricot", "Banana", "Blueberry", "Fig", "Grape"
};

yourList
  .AddRange("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray().Select(x => x.ToString()).ToList());

yourList.Sort();