9688
21608
私は配列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