【问题标题】:Convert object to KeyValuePair将对象转换为 KeyValuePair
【发布时间】:2013-08-17 03:26:06
【问题描述】:

我有一个 IEnumerable<Entityclass> 用于具有 stringint 成员的实体。 我需要将其转换为KeyValuePair<string, double> 的数组,反之亦然。

它因转换错误而失败。

[DataContract]
public class Entityclass
{
    [DataMember]
    public string text{ get; set; }
    [DataMember]
    public int textcount{ get; set; }
 }

我有IEnumerable<Entityclass>

  • 如何将IEnumerable&lt;Entityclass&gt; 转换为KeyvaluePair<string, double>[] 的数组?

  • 如何将KeyvaluePair&lt;string, double&gt;[] 数组转换为KeyvaluePair&lt;string, int&gt;[] 数组?

  • 如何将KeyvaluePair&lt;string, double&gt; 转换回 IEnumerable?

我试过了:

  • topics is IEnumerable&lt;Entityclass&gt;;
  • topics.Cast&lt;KeyValuePair&lt;string, double&gt;&gt;().ToArray(); 因转换错误而失败

【问题讨论】:

  • 问题标题应该是固定的,它的“将列表或可枚举转换为 KeyValuePair 的数组”不是单个对象

标签: c# .net linq .net-4.0 keyvaluepair


【解决方案1】:

您需要将每个主题投影KeyValuePair。 Linq Select 扩展方法就是这样做的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 2012-12-28
    • 2011-06-01
    • 2019-09-17
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多