C# WinForms 如何重复字符串数组成员
本文关键字:数组 组成员 字符串 何重复 WinForms | 更新日期: 2023-09-27 18:36:27
首先,我需要从DataGridView.SelectedCells.Values
创建一个字符串数组。然后,我需要将该字符串附加到自身,直到达到member.count
的限制。例如如果
string [] = {"a", "b", "c"}; // Where abc are selectedCells.Values.
新字符串 [] 应为:
{"a", "b", "c", "a", "b", "c", "a", "b"}
- 例如,如果限制为 8。
请问我该如何解决这个问题?
您可以在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];
}
就是这样。
只需为原始数组索引保留一个单独的计数器即可。像这样:
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;
}
你可以尝试使用类似的东西
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>();
我希望这有所帮助。
此版本使用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));
}
}