C# 从方法返回分组数据
我有一种方法需要返回一个组,即:C# 从方法返回分组数据,c#,.net,windows,linq,collections,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 || i
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”。存在一个显式转换(您是吗
缺少演员阵容?)
编辑:
由于要将
GroupBy
和ToDictionary
组合在一起,因此通过执行groupData[pointer]
可以从字典中获取值,这就是iGroup。如果需要从分组中提取数据,则还需要1个索引gettergroupData[pointer][taxDet]
可能
.ToDictionary(g=>g.Key)代码>在这种情况下是多余的MyData是什么类型的?我在变量“输出”中得到了正确的结果,但现在唯一需要做的是,我需要将这个结果(这是一个组)返回到我调用的main。我很难把它退回来你说的团体是什么意思?如果要返回整个组,则方法返回类型不正确。它应该类似于publicstaticigroupingbinsearch(mydatasearchdate),谢谢,它应该是怎样的:我有调用函数:mydatapointnetcom=BinSearch(value);我想您不需要从BinSearch返回iGroup。请解释您试图在BinSearch方法中执行的操作。乍一看,您不需要调用ToDictionary方法,因为GroupBy已经按照指定的键对项进行分组。在这个方法中,当我得到那个键/记录时,我正在进行搜索。然后我想转到该键,并获取该键及其记录,这将是一个组,并将这些记录发送回调用方(main)。
public class MyData
{
public string TaxDet{ get; set; }
public string empDetails { get; set; }
}