オブジェクト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の提案のいくつかを試してみました、
- LINQ:型 'System.Collections.Generic.IEnumerable <int>'を 'int'に暗黙的に変換することはできません
- Linqクエリ:IEnumerable型の<string>を文字列に変換できません。.ToString()を(string)に変更します。
- 型 '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 };