/ / C#:エラー - 暗黙に型 'int'を 'System.Collections.Generic.IEnumerable <double>に変換できません - c#、c ++、.net、ジェネリックス、キャスト

C#:エラー - 暗黙的に型 'int'を 'System.Collections.Generic.IEnumerable <double>'に変換できません - c#、c ++、.net、generics、casting

オブジェクトEducationDataの中央値を上書きしようとしています。モデルの定義は次のとおりです。

// EducationData model
[DataMember(Name = "DegreeConferred", Order = 1)]
public int DegreeConferred { get; set; }
[DataMember(Name = "NoOfInstitutions", Order = 3)]
public int NoOfInstitutions { get; set; }
[DataMember(Name = "Mean", Order = 6)]
public int Mean { get; set; }
[DataMember(Name = "Median", Order = 7)]
public IEnumerable<double> Median { get; set; }

CachedDataはvar型で、添付の図のように教育の詳細のESクエリ結果が含まれています。

ここに画像の説明を入力

私はいくつかの変更でその中央値を上書きする必要があります。私が試したコードセグメントは次のとおりです。

var resultData = cachedData.ToArray();
resultData[0].Mean = resultData[0].DegreeConferred / resultData[0].NoOfInstitutions; // calculated mean with no error
var updatedMedian = 7; // say for sample, because there is a need to override this queried value with some modification.
resultData[0].Median = updatedMedian; // Error line: Cannot implicitly convert type "int" to "System.Collections.Generic.IEnumerable<double>"

注意:モデル内でプロパティをintに変更すると、それ以降の場所での実装に影響します。だからここでキャスティングをするほうが良いでしょう。

私は、ReSharperの提案を試してみた。

resultData[0].Median = Convert.ToDouble(updatedMedian);
resultData[0].Median = IEnumerable<double>updatedMedian;
Also changing the property of updatedMedian will affect the calculation steps.

私はまた、SOの提案のいくつかを試してみました、

  1. LINQ:型 'System.Collections.Generic.IEnumerable <int>'を 'int'に暗黙的に変換することはできません
  2. Linqクエリ:IEnumerable型の<string>を文字列に変換できません。.ToString()を(string)に変更します。
  3. 型 'System.Collections.Generic.IEnumerableを暗黙的に変換できません

私は過去1日半の間これに苦労しています。どんな提案でも非常に役に立ちます。

回答:

回答№1は2

これは助けになるでしょう!

        resultData[0].Median = new List<double>() {updatedMedian};

回答№2については2

タイプはありません var、および Median はありません intしかし、むしろダブルの列挙型です。それは、それが(潜在的に)1つだけではなく複数の値を含むことを意味します。

あなたが交換したい場合 Median 単一の値7で、あなたは配列を作ることができます:

resultData[0].Median = new [] { 7d };