私は を持っておりdouble[]
、私は別のものIEnumerable<double>
と別のものを持ってList<double>
いObservableCollection<double>
ます。
これらにはすべて double 値が含まれています。
これらのコレクションのいずれかを引数として取り、コレクション内の各要素の値を比例させて 1 になるようにする関数を作成したいと考えています。
たとえば、配列に 0.5、1.0、および 0.5 がある場合、 を呼び出すことができますProportionateIt(mycollection)
。合計が 1 になるため、値を 0.25、0.5、および 0.25 に変更する必要があります。
これまでのところ、私はこれを試しました:
private IEnumerable<double> ProportionateIt(IEnumerable<double> input)
{
double sum = 0;
var newCollection = input.ToList();
foreach (double d in newCollection)
{
sum+= d;
}
for (int i=0; i < input.Count(); i++)
{
newCollection[i] = newCollection[i]*(1/sum);
}
input = newCollection as IEnumerable<double>;
return input;
}
それにはいくつかの問題があります
- 上記のすべての型を引数として取るわけではありません。
- 元のコレクションを変更するのではなく、新しいコレクションを返します。
誰かが私のために ProportionateIt(....) 関数を作成できますか?