相关疑难解决方法(0)

LINQ选择与匿名类型不同

所以我有一组对象.确切的类型并不重要.从中我想提取一对特定属性的所有唯一对,因此:

myObjectCollection.Select(item=>new
                                {
                                     Alpha = item.propOne,
                                     Bravo = item.propTwo
                                }
                 ).Distinct();
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:在这种情况下会不会使用默认对象equals(这对我来说没用,因为每个对象都是新的)或者可以告诉它做一个不同的equals(在这种情况下,Alpha和Bravo的值相等) =>相等的实例)?有没有办法实现这个结果,如果不这样做的话?

c# linq equality anonymous-types distinct

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

在IEqualityComparer中包装委托

几个Linq.Enumerable函数需要一个IEqualityComparer<T>.是否有一个方便的包装类适应delegate(T,T)=>bool实现IEqualityComparer<T>?编写一个很容易(如果你忽略了定义正确的哈希码的问题),但我想知道是否有开箱即用的解决方案.

具体来说,我想对Dictionarys 进行集合操作,仅使用Keys来定义成员资格(同时根据不同的规则保留值).

.net linq delegates

125
推荐指数
7
解决办法
4万
查看次数

使用不同过滤器的实体框架 6 查询

我有个问题。当我运行下面的代码时:

var data = context.TableX.Where(w => w.userId == 9999&& w.id == 9999) .Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

这是生成的查询:

SELECT [Extent1].[id] AS [id], [Extent1].[name] AS [name], [Extent1].[companyId] AS [companyId], [Extent1].[userId] AS [userId] FROM [TableX] AS [Extent1] WHERE (9999 = [Extent1].[userId]) AND (9999= [Extent1].[id]) -- Executing at 01/06/2016 17:28:01 -03:00 -- Completed in 271 ms with result: SqlDataReader
Run Code Online (Sandbox Code Playgroud)

我想知道您是否可以使“Distinct”与查询一起运行,如下所示:

SELECT DISTINCT id, name, companyId AS type FROM TableX WHERE id=9999 AND userId=9999
Run Code Online (Sandbox Code Playgroud)

谢谢。

c# entity-framework entity-framework-6 visual-studio-2013

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

如何编写LINQ查询以仅基于特定属性检索不同的记录?

我有对象的数组,DataTestplans从中我尝试检索特定的记录DataID,并ProductID使用所示的LINQ查询,我目前的查询有Distinct()哪些用于区分所有5点提到的属性,我该如何找回基于性能不重复的记录DataID,TestPlanName,TCIndexListProductID

DataTestplans: -

[
    {
    "DataTestPlanID": 0,
    "DataID": 19148,
    "TestPlanName": "string",
    "TCIndexList": "string",
    "ProductID": 2033915
  },
    {
    "DataTestPlanID": 0,
    "DataID": 19148,
    "TestPlanName": "string",
    "TCIndexList": "string",
    "ProductID": 2033915
  },
      {
    "DataTestPlanID": 0,
    "DataID": 19149,
    "TestPlanName": "string",
    "TCIndexList": "string",
    "ProductID": -2642
  }

]
Run Code Online (Sandbox Code Playgroud)

LINQ

            DataTestPlans_DataID_ProductID = DataTestPlans.Where(c => c.DataID == DataID_ProductID_Record.DataID && c.ProductID == DataID_ProductID_Record.ProductID).Distinct();
Run Code Online (Sandbox Code Playgroud)

c# linq

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