读书人

关于Linq的group by的有关问题

发布时间: 2013-03-22 09:49:50 作者: rapoo

关于Linq的group by的问题
from x in source.Rows.Cast<DataRow>()
group x by new { *** } into g
select new { Items = g };

group by 后面的***部分内容是不确定的,可能有多项,要如何写。 linq group?by
[解决办法]


class EnumerableDataRowList<T> : IEnumerable<T>, IEnumerable
{
IEnumerable dataRows;
internal EnumerableDataRowList(IEnumerable items)
{
dataRows = items;
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
foreach (T dataRow in dataRows)
yield return dataRow;
}
IEnumerator IEnumerable.GetEnumerator()
{
IEnumerable<T> iEnumerable = this;
return iEnumerable.GetEnumerator();
}
}

static StringBuilder stringBuilder = new StringBuilder();
public static String GroupData(DataRow dataRow)
{
//这里的列你可以自己动态指定
String[] columnNames = new[] { "Column1", "Column2"... };

stringBuilder.Remove(0, stringBuilder.Length);
foreach (String column in columnNames)
{
stringBuilder.Append(dataRow[column].ToString());
}
return stringBuilder.ToString();
}

EnumerableDataRowList<DataRow> enumerableRowCollection = new EnumerableDataRowList<DataRow>(source.Rows);

Func<DataRow, String> groupingFunction = GroupData;
var groupedDataRow = enumerableRowCollection.GroupBy(groupingFunction);


试试看

读书人网 >C#

热点推荐