首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于Linq的group by的有关问题

2013-03-22 
关于Linq的group by的问题from x in source.Rows.CastDataRow()group x by new { *** } into gselect ne

关于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);


试试看

热点排行