草庐IT

LINQ_ENABLED

全部标签

c# - 为什么这个 Cross Join 在 Linq 中这么慢?

我编写了这段Linq来处理交叉连接,就像数据库在多个列表之间进行连接一样。但出于某种原因,当任何列表超过3000时,它会非常慢。我会等待30秒?这些列表可能会非常庞大​​。此查询针对与来自ColumnDataIndex的其他列表数据的每个关系循环。有什么建议吗?更新**-数据被插入到预先从配置的源构建的正常列表中。这一切都在内存中。RunningResult[parameter.Uid]=(fromsource_rowinRunningResult[parameter.Uid]fromtarget_rowinColumnDataIndex[dest_key]whereGetColumn

c# - 如何将 Linq 查询传递给方法?

我想将Linq查询传递给方法,如何指定参数类型?我的链接查询看起来像这样:varquery=frompinpointListwherep.X很明显,我是Linq的新手,当我转换其余代码时,最终可能会摆脱接收方法,但这似乎是我应该知道的...谢谢 最佳答案 您需要为投影使用普通类型,或者将传递给它的方法也设为泛型(这意味着您不能用它做很多事情)。你到底想做什么?如果您需要使用该方法中的X和Y值,您肯定需要创建一个普通类型。(有一些可怕的hacky方法可以避免它,但这不是一个好主意。)注意:其他一些答案目前正在谈论IQueryable,

c# - 为什么 RepeaterItemCollection 上没有 LINQ 扩展方法,尽管它实现了 IEnumerable?

为什么RepeaterItemCollection上没有LINQ扩展方法,尽管它实现了IEnumerable?我正在使用Linq处理同一类中其他地方的对象。但是,当我尝试使用RepeaterItemCollection这样做时,它们不可用。我的印象是LINQ扩展方法可用于实现IEnumerable的类。我错过了什么? 最佳答案 它实现了IEnumerable,但不是IEnumerable.但这并不意味着您不能使用它-这是OfType的一部分和Cast用于从非通用序列构建通用序列:varfiltered=items.Cast().Wh

c# - LINQ 除了运算符和对象相等

这是我在使用Except时注意到的一个有趣问题运算符(operator):我有一个用户列表,我想从中排除一些用户:用户列表来自XML文件:代码是这样的:interfaceIUser{intID{get;set;}stringName{get;set;}}classUser:IUser{#regionIUserMemberspublicintID{get;set;}publicstringName{get;set;}#endregionpublicoverridestringToString(){returnID+":"+Name;}publicstaticIEnumerableGetM

c# - || (或)C# 中的 Linq 运算符

我正在使用linq来过滤MessageItems的选择。我编写的方法接受了一堆可能为空的参数。如果它们为空,则应忽略文件的条件。如果不为空,则使用它来过滤结果。据我了解,在执行||时操作是C#,如果第一个表达式为真,则不应计算第二个表达式。例如if(ExpressionOne()||ExpressionTwo()){//onlyExpressionOnewasevaluatedbecauseitwastrue}现在,在linq中,我正在尝试这个:varmessages=(frommsgindc.MessageItemswhereString.IsNullOrEmpty(fromname

c# - linq 如何选择具有包含一个或多个值数组(或列表)的子集合的父项

这看起来很简单varorx=gg.Where(x=>x.ProductAttributes.Any(pa=>pa.AttributeId=="home"));当产品属性的值为“home”时返回gg我需要它返回where和gg具有数组中的产品属性值即varorx=gg.Where(x=>x.ProductAttributes.Any(pa=>pa.AttributeIdin"home,work")); 最佳答案 关于...string[]values=newstring[]{"home","work"};varorx=gg.Where

c# - LINQ 不能使用 string.contains?

这是我的代码:stringqueryString="Marco".ToLower();utenti=db.User.Where(p=>queryString.Contains(p.Nickname.ToLower())||queryString.Contains(p.Nome.ToLower())||queryString.Contains(p.Cognome.ToLower())).ToList();但我得到:OnlyargumentsthatcanbeevaluatedontheclientaresupportedfortheString.Containsmethod.为什么?我不

c# - LINQ to Nhibernate 重复连接

我有这样的问题varorderedQueryable=this.participationRequests.Fetch(x=>x.CommunityEvent).Fetch(x=>x.CommunityMember).ThenFetch(x=>x.User).Where(x=>x.CommunityMember.Community.Id==communityId).OrderBy(x=>x.CreateDate);由于thisbug,where子句需要在fetch之后.问题是thouseFetch调用会发出额外的连接。在SQL查询中如下所示:select*fromParticipati

c# - 使用 LINQ 将多个列表合并为一个列表

是否有一种巧妙的方法可以使用LINQ将多个列表合并为一个列表以有效地复制它?publicclassRGB{publicintRed{get;set;}publicintGreen{get;set;}publicintBlue{get;set;}publicRGB(intred,intgreen,intblue){Red=red;Green=green;Blue=blue;}}publicvoidmyFunction(){Listred=newList{0x00,0x03,0x06,0x08,0x09};Listgreen=newList{0x00,0x05,0x06,0x07,0x0a

c++ - Qt 拖放 : cannot move when copy is enabled (Ubuntu Gnome)

我正在实现一个View和一个模型,我希望在其中支持内部移动项目(通过拖动)和复制项目(通过在拖动时按Ctrl)。我已经按照说明完成了我需要做的一切。我已经设置了mime函数,我已经实现了removeRows()和flags()。问题是当我拖动时,它默认为复制操作(我得到带有加号的箭头光标,它确实通过在模型中创建一个新项目来复制项目)。我能看到的唯一区别是:如果我在supportedDropActions()中只返回Qt::MoveAction,它只会移动。如果我返回(Qt::CopyAction|Qt::MoveAction),它只会复制。有什么想法吗?我希望它像Nautilus(Gn