相关疑难解决方法(0)

按IEnumerable <DataRow>分组

我有一组DataRow对象.我应该根据"URL_Link"列选择不同的行.在这篇文章之后,我提出了以下代码.
是否可以将其应用于DataRow集合?

IEnumerable<DataRow> results = GetData();  
results.GroupBy(row => row.Field<string>("URL_Link")).Select(grp => grp.First());
Run Code Online (Sandbox Code Playgroud)

它在语法上是正确的,但它没有解决问题.它不会删除重复的行.我究竟做错了什么?

c# linq group-by datarow

3
推荐指数
1
解决办法
1万
查看次数

IEqualityComparer和Linq Distinct - 硬代码GetHashCode()

我有一个CustomObjects和一个自定义的数组IEqualityComparer<CustomObject>.我已经硬编码了IEqualityComparer.GetHashCode()返回常量的方法42.

当我Distinct在数组上运行linq的方法时,没有任何东西被过滤掉.谁知道为什么?

注意:我知道这里有很多关于这个问题的问题,但是,我见过的(C#Distinct on IEnumerable <T> with custom IEqualityComparer,Distinct()with lambda?)等只是为了确保实施GetHashCode.他们都没有解释,为什么它不起作用.

码:

public class CustomObject
{
    public string Name { get; set; }
}

public class CustomObjectEqualityComparer : IEqualityComparer<CustomObject>
{
    public bool Equals(CustomObject x, CustomObject y)
    {
        //Every CustomObject should now be 'equal'!
        return x.GetHashCode() == y.GetHashCode();
    }

    public int GetHashCode(CustomObject obj)
    {
        //Every CustomObject should now be 'equal'!
        return …
Run Code Online (Sandbox Code Playgroud)

.net c# linq linq-to-objects

3
推荐指数
1
解决办法
2056
查看次数

C#重复数据删除列表基于拆分

我很难根据特定的分隔符重复列表.

例如,我有4个字符串,如下所示:

苹果|梨|水果|篮
橙|芒果|水果|乌龟
紫|红|黑|绿
英雄|托尔|铁人|绿巨人

在这个例子中,我希望我的列表在第3列中只有唯一值,因此它会产生一个如下所示的List,

苹果|梨子|水果|篮子
紫色|红色|黑色|绿色
英雄|托尔|铁人|绿巨人

在上面的示例中,我将摆脱第2行,因为第1行在第3列中具有相同的结果.任何帮助都会很棒,在C#中重复数据删除很难.

我是如何测试的:

    static void Main(string[] args)
    {
        BeginListSet = new List<string>();
        startHashSet();
    }


    public static List<string> BeginListSet { get; set; }

    public static void startHashSet()
    {
        string[] BeginFileLine = File.ReadAllLines(@"C:\testit.txt");
        foreach (string begLine in BeginFileLine)
        {

            BeginListSet.Add(begLine);
        }

    }

    public static IEnumerable<string> Dedupe(IEnumerable<string> list, char seperator, int keyIndex)
    {
        var hashset = new HashSet<string>();
        foreach (string item in list)
        {
            var array = item.Split(seperator);
            if (hashset.Add(array[keyIndex]))
                yield return item;
        } …
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
1722
查看次数

vb.net LINQ选择与列表不同

我有一个datatable列有一些重复的值,我想将这些值添加到一个listbox但没有重复

我尝试了以下内容

Dim a = From row In table.AsEnumerable.Distinct.ToList Select row.Field(Of String)("name")
Run Code Online (Sandbox Code Playgroud)

但它给了我重复的值,如何在没有重复的情况下完成?

.net c# linq vb.net datatable

1
推荐指数
1
解决办法
2万
查看次数

C#LINQ Distinct(f => f.propertyname)不起作用

我正在尝试在复杂类型的集合上编写LINQ查询.我想在这个集合上写一个截然不同的查询,以获得两个字段的组合.

我不认为Lambda表达式支持Distinct的管道(f => f.propertyname).希望它做到了.任何人使用更简单的实现,然后使用Comparer?

c# linq distinct

1
推荐指数
1
解决办法
478
查看次数

标签 统计

c# ×5

linq ×4

.net ×2

datarow ×1

datatable ×1

distinct ×1

group-by ×1

linq-to-objects ×1

vb.net ×1