0

配列から個別の名前のみを選択する方法を知りたいです。私がしたことは、多くの無関係な情報を含むテキスト ファイルから読み取ることでした。現在のコードの出力結果は、名前のリストです。テキスト ファイルから各名前を 1 つだけ選択したい。

以下は私のコードです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace Testing
{
class Program
{
    public static void Main(string[] args)
    {
        String[] lines = File.ReadLines("C:\\Users\\Aaron\\Desktop\\hello.txt").ToArray();

        foreach (String r in lines)
        {
            if (r.StartsWith("User Name"))
            {
                String[] token = r.Split(' ');
                Console.WriteLine(token[11]);
            }
        }
    }
}
}
4

1 に答える 1

2

まあ、このように読んでいる場合は、それらを に追加するだけで済みHashSet<string>ます (.NET 3.5 を想定):

HashSet<string> names = new HashSet<string>();
foreach (String r in lines)
{
    if (r.StartsWith("User Name"))
    {
        String[] token = r.Split(' ');
        string name = token[11];
        if (names.Add(name))
        {
            Console.WriteLine(name);
        }
    }
}

または、コードを LINQ クエリと考えてください。

var distinctNames = (from line in lines
                     where line.StartsWith("User Name")
                     select line.Split(' ')[11])
                    .Distinct();
foreach (string name in distinctNames)
{
    Console.WriteLine(name);
}
于 2010-11-24T06:29:50.720 に答える