将字符串数组分成c#中的两个不同的字符串列表

时间:2017-12-29 19:56:47

标签: c# asp.net visual-studio c#-4.0 c#-3.0

我有一个字符串数组

string [] lines = File.ReadAllLines(path);

这些行包含以下数据

"A|3232|test"
"C|5544|test2"
"C|8884|test3"
"A|7777|test0"
"A|4343|test4"

我想基于第一个字母“A”和“C”分隔上面的数组。如何分隔上面的行并存储在bleow列表字符串中。

List<string> aletterlines=
List<string> CletterLines=

3 个答案:

答案 0 :(得分:0)

您可以使用Linq执行此操作:

var lineGroups = lines.GroupBy(d => d[0]);
List<string> aLetters = lineGroups.SingleOrDefault(d => d.Key == 'A').ToList();
List<string> cLetters = lineGroups.SingleOrDefault(d => d.Key == 'C').ToList();

答案 1 :(得分:0)

string[] lines = File.ReadAllLines(path);

List<string> aletterlines = new List<string>();
List<string> CletterLines = new List<string>();

foreach (var item in lines)
{
    string[] currentLine = item.Split('|');

    if (currentLine[0] == "A")
    {
        aletterlines.Add(item);
    }
    else
    {
        CletterLines.Add(item);
    }
}

答案 2 :(得分:0)

有很多方法可以实现这一点,您可以像其他人建议的那样使用LINQ或简单的foreach循环:

private void Example()
{
    string[] lines = {"A|3232|test",
                      "C|5544|test2",
                      "C|8884|test3",
                      "A|7777|test0",
                      "A|4343|test4"};

    List<string> aletterlines = new List<string>();
    List<string> CletterLines = new List<string>();

    foreach (string item in lines)
    {
        if (item.StartsWith("A"))
        {
            aletterlines.Add(item);
        }
        else if (item.StartsWith("C"))
        {
            CletterLines.Add(item);
        }
    }
}