相关疑难解决方法(0)

C#FindAll VS Where Speed

任何人都知道列表中Where和FindAll之间的任何速度差异.我知道IEnumerable的一部分在哪里,FindAll是List的一部分,我只是好奇什么更快.

c# performance where findall

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

FindAll vs Where扩展方法

我只是想知道"FindAll"是否会比"Where"extentionMethod更快,为什么?

示例:

myList.FindAll(item=> item.category == 5);
Run Code Online (Sandbox Code Playgroud)

要么

myList.Where(item=> item.category == 5);
Run Code Online (Sandbox Code Playgroud)

哪个更好 ?

c# lambda extension-methods

33
推荐指数
2
解决办法
9127
查看次数

List.Contains(item)具有通用的对象列表

如果您有一个List,如果存在指定的属性或属性集,如何返回该项?

public class Testing
{
    public string value1 { get; set; }
    public string value2 { get; set; }
    public int value3 { get; set; }
}
public class TestingList
{
    public void TestingNewList()
    {
        var testList = new List<Testing>
                           {
                               new Testing {value1 = "Value1 - 1", value2 = "Value2 - 1", value3 = 3},
                               new Testing {value1 = "Value1 - 2", value2 = "Value2 - 2", value3 = 2},
                               new Testing {value1 = "Value1 - 3", value2 = …
Run Code Online (Sandbox Code Playgroud)

c#

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

IList <T>没有"where"

在我工作的特定项目中,我有一个返回IList的方法.但是这个接口不包含where或FindAll过滤器.但是,当我打开一个新项目时,IList包含所有项目.有什么不同?

c# linq ilist list

9
推荐指数
2
解决办法
3348
查看次数

FindAll与哪里

我有一个IEnumerable<T>我想根据LINQ谓词进行过滤.我试着用WhereIEnumerable,因为我通常做,但是这一次我偶然发现了一些有趣的事情.当IEnumerable使用谓词调用Where on时,我得到一个空列表作为回报.我知道它必须生成一个包含两个项目的列表.如果我改为使用FindAll相同的谓词,那么它会产生正确的结果.

任何人都可以向我解释,为什么会发生这种情况?我一直认为那Where是一种懒惰的版本FindAll,它也返回了一个IEnumerable而不是一个List.它必须有更多吗?(我做了一些研究,但无济于事.)

码:

IEnumerable<View> views = currentProject.Views.Where(
                    v => v.Entries.Any(e => e.Type == InputType.IMAGE || e.Type == InputType.VIDEO));

IEnumerable<View> views = currentProject.Views.FindAll(
                    v => v.Entries.Any(e => e.Type == InputType.IMAGE || e.Type == InputType.VIDEO));
Run Code Online (Sandbox Code Playgroud)

.net c# linq ienumerable list

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

Linq FindAll和Where返回不同​​的结果

我有两种不同类型的对象,其ID字段具有可能匹配的ID.FindAll操作返回正确的非匹配对象,而Where操作返回所有对象.有人可以帮我理解为什么吗?

var _kenticoIDs = new HashSet<string>(_kenticoSessions.Select(p => p.AttendeeInteractiveSessionID));
var list = _aiSessionIDList.FindAll(p => !_kenticoIDs.Contains(p.SessionID));
var ienum = _aiSessionIDList.Where(p => !_kenticoIDs.Contains(p.SessionID));
Run Code Online (Sandbox Code Playgroud)

编辑:如果我对resultA变量执行.ToList(),则结果列表与结果变量相同.但是,当我在.ToList()之前检查两个变量(result/resultA)时,一个有6个值,一个有63个值.我觉得我错过了一些明显的东西.

c# linq

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

标签 统计

c# ×6

linq ×3

list ×2

.net ×1

extension-methods ×1

findall ×1

ienumerable ×1

ilist ×1

lambda ×1

performance ×1

where ×1