2010-11-24 13 views
0

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

は私のコードです:まあ

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]); 
      } 
     } 
    } 
} 
} 
+0

これを確認してください[http://stackoverflow.com/questions/9673/re move-duplicates-from-array](http://stackoverflow.com/questions/9673/remove-duplicates-from-array) – Waqas

答えて

2

、あなたがこのようにそれらを読んでいる場合は(.NET 3.5を仮定して)行くようにあなただけのHashSet<string>にそれらを追加することができます。

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); 
} 
関連する問題