读书人

C# WinForm listview 怎么将相同的行合

发布时间: 2012-03-23 12:06:21 作者: rapoo

C# WinForm listview 如何将相同的行合并
C# WinForm listview 如何将相同的行合并,数据是解析出来的
道具编号 道具名称 道具数量 角色名称
289 新手衣服 1 sdfsdf
883 月之心 1 sdfsdf
883 月之心 1 sdfsdf




不是从数据库里查询出来的,是解析出来的
我的目的是 合并listview 相同的行
道具编号 道具名称 道具数量 角色名称
289 新手衣服 1 sdfsdf
883 月之心 2 sdfsdf

在线等高手,不甚感激

[解决办法]
var value=(from v in listview select v.道具编号).Distinct().ToList();

上面是linq筛选,这样得到的list就是去到重复的啦,试试吧
[解决办法]
可以用泛型分组,然后重新构—ataTable
IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(d => d[8].ToString());
foreach (IGrouping<string, DataRow> ig in result)
重复的行手动合并
[解决办法]

C# code
string[] columns = new string[DataTableSource.Columns.Count];            for (int index = 0; index < DataTableSource.Columns.Count; index++)            {                columns[index] = DataTableSource.Columns[index].ColumnName;            }            //得到不重复的数据行            DataTable dt = DataTableSource.DefaultView.ToTable(true, columns);             foreach (DataRow dr in dt.Rows)            {                DataRow[] drs = DataTableSource.Select(string.Format("编号='{0}'", dr["编号"].ToString()));                if (drs.Length > 0)                {                    int num = 0;                    foreach (DataRow row in drs)                    {                        num += int.Parse(row["数量"].ToString());                    }                    dr["数量"] = num.ToString();                }                        }            dataGridView1.DataSource = dt; 

读书人网 >C#

热点推荐