私は配列statsnameを持っています 林檎 バツ バナナ Y キウイ z リンゴ、バナナ、キウイをフルーツの配列に入れ、X、Y、Zをアルファベットと呼ばれる配列に入れる必要があります。 そのための簡単なC#メカニズムはありますか?
インデックスを提供するIEnumerable.Whereオーバーロードを使用します。 var fruit = statsname.Where((s、i)=> i%2 == 0).ToArray(); varalphabets = statsname.Where((s、i)=> i%2!= 0).ToArray(); | C#でEnumerableを使用して代替要素を取得する方法から盗まれました varフルーツ= myArray.Where((t、i)=> i%2 == 0).ToArray(); varalphabets = myArray.Where((t、i)=> i%2 == 1).ToArray(); | 私があなたが正しく質問することを理解していれば、あなたが望むものは非常に簡単です: 果物を果物の配列に入れ、アルファベットも同じにしたい場合、それらは配列statsnameに交互に表示されます。 for(int i = 0、j = 0; i list = new List (){"アップル"、 "X"、 "バナナ"、 "Y"、 "キウイ"、 "z"}; var result = list.Select((l、i)=> new {l、i}) .GroupBy(p => p.i%2) .Select(x => x.Select(v => v.l).ToList()) .ToList(); 次に、リストのリストがあります。 | list Fruits = new List (); list アルファベット=新しいList (); for(int i = 0; i everyOther (IEnumerable コレクション) {{ using(var e = collection.GetEnumerator()){ while(e.MoveNext()){ イールドリターンe.Current; e.MoveNext(); // 1つスキップします } } } System.Linq.Skipを使用して、最初の要素をスキップできます。 string [] words = "apple X banana Y Kiwi z" .Split(); var Fruits = everyOther(words); varalphabets = everyOther(words.Skip(1)); それらを新しいコレクションとして使用するか、それらに対して.ToArray()または.ToList()を呼び出します。 foreach(フルーツの文字列f) Console.WriteLine(f); string [] anArray = Fruits.ToArray(); //System.Linqを使用 今、あなたはあなたが必要なものを持っています。 イテレータはリターンを生成するメソッドです。イテレータ(C#プログラミングガイド)を参照してください。これは言語の非常に強力な機能です。あなたはできる: 要素をスキップする 要素を飾る 順序を変更する シーケンスを連結します(System.Linq.Concatを参照) ..。 | ここにいくつかの実用的なコードがあります、うまくいけばこれはあなたに役立つでしょう: システムを使用する; System.Collections.Genericを使用する; System.IOを使用する; System.Linqを使用する; System.Textを使用します。 System.Threading.Tasksを使用する; 名前空間ReadFile {{ クラスプログラム {{ static void ReadFile(string filePath、List custumerNames、List phoneNumbers) {{ string line = string.Empty; var fileStream = new StreamReader(filePath); bool isPhoneNumber = true; while((line = fileStream.ReadLine())!= null) {{ if(isPhoneNumber) {{ phoneNumbers.Add(Convert.ToInt32(line)); isPhoneNumber = false; } そうしないと {{ custumerNames.Add(line); isPhoneNumber = true; } } fileStream.Close(); } static void Main(string [] args) {{ Console.WriteLine( "ファイルの読み取りを開始しました..."); List custumersNamesList = new List (); List custumersPhonesNumbers = new List (); ReadFile( "SampleFile.txt"、custumersNamesList、custumersPhonesNumbers); //両方のリストの長さが同じであると仮定します。 for(int i = 0; i