名前のリストを取得して配列に追加し、その配列をN個のグループに分割し、それらの配列をWindowsフォームの別々のテキストボックスに表示したいとします。これまで私はこれを持っています。これはリストを取り、それらを分割しますが、正直言って、私はそれが私がしたいことをやっているとは思いません。アレイをより小さな配列に分割するにはどうすればよいですか?
MasterList:
ジョニー、マーク、トム、カール、ジェニー、スージー、ベン、ティム、アンジー
グループ1:ジョニー、マーク、アンジー
グループ2:トム、カール
グループ3:ジェニー、スージー
グループ4:ベン、ティム
void addnamestoList_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(this.studentnameTboxContent))
{
int num = (int)MessageBox.Show("No content to format.",
"Message",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
else
{
transformText();
}
}
public void transformText()
{
string[] masterList = studentnameTboxContent.Split('\n');
var split = from index in Enumerable.Range(0, masterList.Length)
group masterList[index] by index/int.Parse(groupcountTboxContent);
studentNames.Text = "";
foreach (var Array in split)
{
studentNames.AppendText(string.Join(Environment.NewLine, Array.ToArray()));
}
}
はリストをランダム化する方法:
private string[] randomizeList(string[] list)
{
Random rnd = new Random();
string[] randomList = list.OrderBy(x => rnd.Next()).ToArray();
return randomList;
}
?たとえば、ソースの短いサンプルとそのリストをどのようにグループ化するかの簡単なサンプルを説明できますか?提供されたサンプルからあまり明確ではない – DiskJunky
投稿を更新しました。 – jPol34
これは役に立ちます。あなたはどのような名前がどのグループに入るかをどのように決めていますか? – DiskJunky