从方法返回分组数据

时间:2014-05-13 06:28:23

标签: c# .net windows linq collections

我有一种方法可以从中返回一个组,即:

public static MyData BinSearch(MyData searchDate)
{
 // First doing a binary search to get the index

 if (index >= 0)
        {
            return recordList[index];
        }

        index = ~index;

        if (index == 0 || index == recordList.Count)
        {
            return null;
        }

        int newIndex = (((index-1)+index)/2)+1;
        string pointer = recordList[newIndex].TaxDet;

        var groupData = recordList.GroupBy(p => p.TaxDet)
                      .ToDictionary(g => g.Key);

        var output = groupData[pointer];


        return (output); // Here I want to return a group of data
 }

但是我收到了错误:

  

无法隐式转换类型   ' System.Linq.IGrouping'至   ' ConsoleApplication1.MyData&#39 ;.存在显式转换(是你   错过演员?)

编辑:

public class MyData
    {
        public string TaxDet{ get; set; }
        public string empDetails { get; set; }
    }

1 个答案:

答案 0 :(得分:0)

由于您要合并GroupByToDictionary,通过执行groupData[pointer],您将从字典中获取值,即IGrouping。如果您需要从分组中提取数据,则需要另外1个索引getter groupData[pointer][taxDet]

在这种情况下,.ToDictionary(g => g.Key);可能是多余的