.net - 匿名类型集合?

标签 .net collections anonymous-types

我正在寻找创建匿名类型集合的最佳实践。

有几种方法-this一种,关于this线程的大多数答案都假定可以在一个语句中构造整个匿名集合。

由于通常使用匿名类型来替换用于存储临时类的类(如this SO answer中所提出),因此我想避免像this post所建议的那样为匿名集合创建和使用一个类。

就我而言,我正在遍历一个集合-对于该集合中的每个项目,我都希望以匿名类型(充当元组)来收集相关对象。我需要将这些匿名类型放入集合中,然后对它们进行排序以进行进一步的工作。

我考虑过的其他方法:

  • 使用object []或ArrayList(失去匿名类型的好处)
  • 为所需项创建包装类(消除对匿名类型的需要)

  • 这是我的代码中唯一需要这样的集合的地方-最好的方法是什么?

    附加信息:

    我正在使用旧版.Net 1.1对象,因此正在使用的集合是实现IEnumerable的强类型集合,因此大多数Linq扩展方法(如.Select)将无法使用:

    代码示例
    foreach (Item item in myItems)
    {
        foreach (Confirmation confirmation in item.GetConfirmations(true))
        {
            if (lastParentId != item.ParentId)
            {
                lastParentId = item.ParentId;
                parentObject = new ParentItem(lastParentId);
            }
    
            itemHolder = new ArrayList { item, confirmation };
            if (parentObject!= null)
            {
                itemHolder.Add(parentObject.Rate);
            }
    
            sortConfirmations.Add(confirmation.Date, itemHolder);
        }
    }
    
    // Use sortConfirmations
    

    分辨率

    我最终使用通用字典将相关项目收集在一起,并使用.OrderBy()对它们进行排序-难看,但是它可以工作...并且比现有代码更好。

    最佳答案

    对于一个非常不同的答案... LINQ?

    In my case, I am iterating over a collection - for each item in the collection I would like to collect related objects in an anonymous type (acting as a tuple). I need these anonymous types to be put in a collection and then sort them for further work.



    听起来像:
    var list = (from item in collection
              from related in item.Relationship
              order by ...something...
              select new {item,related}).ToList()
    

    关于.net - 匿名类型集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661663/

    相关文章:

    asp.net-mvc - MVC View 中的动态类型

    java - 使用聚合操作将对象集合复制到另一个集合而不重复

    c# - SQLite 简单插入查询

    c# - 如何在处理 SqlTransaction 之前检查状态

    c# - 在 C# 中,为什么 dictionary[0]++ 有效?

    java - 如何构造可以在不同键上索引和排序的数据?

    forms - symfony 2.3表单getData在子表单集合中不起作用

    c# - 在将 XElement 添加到匿名对象之前,如何检查该 XElement 是否不为 null?

    Perl:是否可以迭代匿名哈希?

    c# - Mef 导入实现在运行时指定的接口(interface)的所有类型