1

私は配列statsnameを持っています

apple
X
banana
Y
Kiwi
z

apple、banana、Kiwi を配列 Fruits に、X、Y、Z を alphabets という配列に入れる必要があります。

簡単な C# メカニズムを教えてください。

4

9 に答える 9

10

IEnumerable<T>.Whereインデックスを提供するオーバーロードを使用します。

var fruits = statsname.Where((s, i) => i % 2 == 0).ToArray();
var alphabets = statsname.Where((s, i) => i % 2 != 0).ToArray();
于 2013-11-22T09:29:30.947 に答える
8

C# で Enumerable を使用して代替要素を取得する方法から盗まれた

var fruits = myArray.Where((t, i) => i % 2 == 0).ToArray();
var alphabets = myArray.Where((t, i) => i % 2 == 1).ToArray();
于 2013-11-22T09:29:25.087 に答える
2

私があなたが正しく質問していることを理解していれば、あなたが望むものは非常に簡単です:あなたはアルファベットfruitsの配列fruitsと同じものを入れたいと思っており、それらは配列に交互に表示されstatsnameています:

for(int i=0,j=0;i<statsname.length;i+2,j++)
    fruits[j]=statsname[i];

for(int i=1,j=0;i<statsname.length;i+2,j++)
    alphabets[j]=statsname[i];
于 2013-11-22T09:29:04.683 に答える
2

単一の LINQ:

List<string> list = new List<string>() { "apple", "X", "banana", "Y", "Kiwi", "z" };
var result = list.Select((l, i) => new { l, i })
                 .GroupBy(p => p.i % 2)
                 .Select(x => x.Select(v => v.l).ToList())
                 .ToList();

次に、リストのリストがあります。

リンク結果

于 2013-11-22T09:35:41.937 に答える
1
list<string> fruits = new List<string>();
list<string> alphabet = new List<string>();

for (int i = 0; i < array.Length; i++)
{
   if (i % 2 == 0)
       fruits.Add(array[i]);
   else
       alphabet.Add(array[i]);
}

.ToArray次に、リストで行うことができます

于 2013-11-22T09:30:59.137 に答える
-2

ここにいくつかの実用的なコードがあります。うまくいけば、これはあなたに役立つでしょう:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadFile
{
    class Program
    {
        static void ReadFile(string filePath, List<string> custumerNames, List<int> 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;
                }
                else
                {
                    custumerNames.Add(line);
                    isPhoneNumber = true;
                }
            }

            fileStream.Close();
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Started reading the file...");
            List<string> custumersNamesList = new List<string>();
            List<int> custumersPhonesNumbers = new List<int>();

            ReadFile("SampleFile.txt", custumersNamesList, custumersPhonesNumbers);

            //Assuming both the list's has same lenght.
            for (int i = 0; i < custumersNamesList.Count(); i++)
            {
                Console.WriteLine(string.Format("Custumer Name: {0} , Custumer Phone Number: {1}",
                    custumersNamesList[i], Convert.ToString(custumersPhonesNumbers[i])));
            }

            Console.ReadLine();
        }
    }
}
于 2016-06-08T13:18:24.707 に答える