乱数生成の変更


class NumberArray
{
private int[] number_;

public NumberArray(int count)
{
number_ = new int[count];

var rnd = new int[count];
for (int i = 0; i < count; i++)
{
rnd[i] = i;
}

for (int i = 0, size = count; i < count; i++, size--)
{
var pos = new Random().Next(size);
number_[i] = rnd[pos];

for (int j = pos; j < size - 1; j++)
{
rnd[j] = rnd[j + 1];
}
}
}

public int[] ToList()
{
return number_;
}
}
}


class NumberArray
{
private List number_;

public NumberArray(int count)
{
var rnd = Enumerable.Range(0, count).ToList();

number_ = new List(count);
for (int i = 0; i < count; i++)
{
var pos = new Random().Next(rnd.Count);
number_[i] = rnd[pos];
rnd.RemoveAt(pos);
}
}

public List ToList()
{
return number_;
}
}

ここに入ってる List を List に置換して、
呼び出し側を以下のように変更したい


var rnd = new NumberArray(10).ToList();


var rnd = new NumberArray(10).ToList();

C# 乱数生成

新しいC#の書き方に直して行くべく
重複のない乱数列を生成するものを書いてみた
C#らしくない場所のツッコミお願いします
※本題と関係ないことに対するツッコミは無視します


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sort_cs
{
class Program
{
static void Main(string[] args)
{
var rnd = new NumberArray(10).ToList();
}
}

class NumberArray
{
private int[] number_;

public NumberArray(int count)
{
number_ = new int[count];

var rnd = new int[count];
for (int i = 0; i < count; i++)
{
rnd[i] = i;
}

for (int i = 0, size = count; i < count; i++, size--)
{
var pos = new Random().Next(size);
number_[i] = rnd[pos];

for (int j = pos; j < size - 1; j++)
{
rnd[j] = rnd[j + 1];
}
}
}

public int[] ToList()
{
return number_;
}
}
}

生成される rnd 配列は以下の通り(例です)
3 2 5 7 1 8 9 0 4 6

次はこの乱数列をソートする方法

窓辺ななみについて

窓辺家の家系図を分析してみた

http://ascii.jp/elem/000/000/470/470207/img.html

窓辺:Windows…NT系
白戸(しらと→DOS):DOS

窓辺家
三一(さんいち):Windows NT 3.1
珊瑚(さんご):Windows NT 3.5
直三(なおぞう):?
仁宣(ひとのぶ):?
クロード(蔵人):Windows Cloud
美佳穂(みかほ→NTふぉー):Windows NT4
吾一(ごいち):Windows XP
むつみ:Windows Vista
ななみ:Windows 7

白戸家
三平(さんぺい):Windows 3.1
久吾(きゅうご):Windows 95
南都子(なとこ→USB):Windows 95(OSR2)
究八(きゅうはち):Windows 98
美衣(みい):Windows ME