将对象转换为KeyValuePair

Jus*_*mes 6 .net c# linq .net-4.0 keyvaluepair

我有一个IEnumerable<Entityclass>有一个string和一个int成员的实体.我需要将其转换为数组,KeyValuePair<string, double>反之亦然.

它失败并出现强制转换错误.

[DataContract]
public class Entityclass
{
    [DataMember]
    public string text{ get; set; }
    [DataMember]
    public int textcount{ get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

我有 IEnumerable<Entityclass>

  • 我如何转换IEnumerable<Entityclass>为数组KeyvaluePair<string, double>[]

  • 如何将KeyvaluePair<string, double>[]数组转换为KeyvaluePair<string, int>[]数组?

  • 如何转换KeyvaluePair<string, double>回IEnumerable?

我试过了:

  • topics is IEnumerable<Entityclass>;
  • topics.Cast<KeyValuePair<string, double>>().ToArray(); 失败并出现施法错误

Kin*_*ing 18

您需要将每个主题投影到一个KeyValuePair.Linq Select扩展方法可以:

topics
    .Select(x=> new KeyValuePair<string, double>(x.text, x.textcount))
    .ToArray();
Run Code Online (Sandbox Code Playgroud)