Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XtraGrid中列中唯一值的列表_C#_.net_Winforms_Devexpress_Xtragrid - Fatal编程技术网

C# XtraGrid中列中唯一值的列表

C# XtraGrid中列中唯一值的列表,c#,.net,winforms,devexpress,xtragrid,C#,.net,Winforms,Devexpress,Xtragrid,是否有方法获取XtraGrid中任何列中的唯一值列表。当我单击列标题进行筛选时,它显示了列表(请参见所附的图像“}”) 是否有任何XtraGrid对象或Column对象,通过它们我可以以数组或列表的形式获取这些信息?如何将其作为GridView上的扩展方法实现,如下所示 using System; using System.Linq; using System.Collections.Generic; using DevExpress.XtraGrid.Views.Grid; namespac

是否有方法获取XtraGrid中任何列中的唯一值列表。当我单击列标题进行筛选时,它显示了列表(请参见所附的图像“}”)


是否有任何XtraGrid对象或Column对象,通过它们我可以以数组或列表的形式获取这些信息?

如何将其作为GridView上的扩展方法实现,如下所示

using System;
using System.Linq;
using System.Collections.Generic;
using DevExpress.XtraGrid.Views.Grid;

namespace Extensions
{
    public static class XtraGridExtensions
    {
        public static IEnumerable<string> GetColumnsDistinctDisplayText(this GridView gv, string columnName)
        {
            if (gv == null)
            {
                throw new NullReferenceException("GridView is null");
            }
            if (gv.RowCount == 0)
            {
                return Enumerable.Empty<string>();
            }
            return (from int row in Enumerable.Range(0, gv.RowCount - 1)
                    select gv.GetRowCellDisplayText(row, columnName)).Distinct().OrderBy(s => s);
        }
    }
}
using Extensions;

...

string msg = string.Empty;
foreach (var item in gridView1.GetColumnsDistinctDisplayText("columnName"))
{
    msg += item + "\n";
}
MessageBox.Show(msg);

我已经实现了类似的功能,但是使用了datasource和columnName。@CodingBarfield使用网格的好处是,如果用户过滤了数据,它只会给你未过滤的值。谢谢@JoelWeiss,它对我有用,但我想知道是否已经有这样的值的集合,这样我们就不必循环并执行“.Distinct().OrderBy(s=>s);”…@EternalNoob就我所知,没有这样的集合。