将对象转换为KeyValuePair

时间:2013-08-17 03:26:06

标签: c# .net 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; }
 }

我有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();因投射错误而失败

1 个答案:

答案 0 :(得分:18)

您需要每个主题投射到KeyValuePair。 Linq Select扩展方法可以做到:

topics
    .Select(x=> new KeyValuePair<string, double>(x.text, x.textcount))
    .ToArray();