0

まず、から文字列配列を作成する必要がありますDataGridView.SelectedCells.Values。次に、制限に達するまで、その文字列をそれ自体に追加する必要がありますmember.count。たとえば、

string [] = {"a", "b", "c"};  // Where abc are selectedCells.Values.

新しい文字列[]は次のようになります。

{"a", "b", "c", "a", "b", "c", "a", "b"}

  • たとえば、制限が8の場合。

どうすればこれを解決できますか?

4

4 に答える 4

4

%for ループで (モジュラス) を使用できます。

string[] oldArr = new string[3] {"a","b","c"};
string[] newArr = new string[8];
int limit = 8;
for ( int i = 0 ; i < limit ; i++ )
{
    newArr[i] = oldArr[i%oldArr.Length];
}

それでおしまい。

于 2012-06-05T19:04:38.227 に答える
3

元の配列インデックス用に別のカウンターを保持するだけです。何かのようなもの:

string[] strings = new string[] { "a", "b", "c" };
string[] final = new string[8];

int index = 0;
for(int i = 0;i < 8;++i)
{
    final[i] = strings[index];
    index = (index + 1) % strings.Length;
}
于 2012-06-05T18:53:03.287 に答える
1

次のようなものを使用して試すことができます

int yourLimit = 8;
int yourIndexer = 0;
string[] strArr = new string[3] { "a", "b", "c" };
List<string> list = new List<string>();
foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
{
    if (strArr.Contains(cell.Value.ToString()) && yourIndexer < yourLimit)
        list.Add(cell.Value.ToString());
    yourIndexer++;
}
string[] strNewArr = list.ToArray<string>();

これが役立つことを願っています。

于 2012-06-05T19:01:31.857 に答える
1

このバージョンはArray.Copy、コピーを行うために使用します。

    {
        int N=10;
        string[] strings=new string[] { "a", "b", "c" };
        int L=strings.Length;

        int R = (int) Math.Ceiling(N/(1.0*L));
        string[] result=new string[N];
        for(int index=0; index<R; index++)
        {
            int offset = index*L;
            Array.Copy(strings, 0, result, offset, Math.Min(L, N-offset));
        }
    }
于 2012-06-05T19:22:06.133 に答える