标签: predicates

NSArray过滤:在哪种情况下使用谓词和使用块的情况?

性能方面,在一个相对较大的阵列上(到目前为止,原始阵列的通常计数是±20000),哪种方法最适合过滤它?块或谓词?

包含对象的大多数ivars都是字符串,我想查询它们.

arrays cocoa objective-c predicates objective-c-blocks

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

使用 xsl 谓词根据另一个节点的值选择一个节点

与此问题类似的问题: XPath: select a node based on another node?

目标是根据同级节点的值选择一个节点——在本例中是基于 Pagetype 节点的值的 Pagetitle 节点。

路径:

/dsQueryResponse/Rows/Row/@Title
/dsQueryResponse/Rows/Row/@Pagetype
/dsQueryResponse/Rows/Row/@Pagetitle
Run Code Online (Sandbox Code Playgroud)

这个 xsl 没有返回任何东西:

<xsl:value-of select= "/dsQueryResponse/Rows/Row[Pagetype='Parent']/@Pagetitle" />  
Run Code Online (Sandbox Code Playgroud)

示例 xml:

<dsQueryResponse>
       <Rows>
            <Row>
               <Title>1</Title>
               <Pagetype>Parent</Pagetype>
               <Pagetitle>title of page</Pagetitle>
            </Row>
        </Rows>
</dsQueryResponse>  
Run Code Online (Sandbox Code Playgroud)

目标是返回 Pagetitle 的值,如果它们的 Pagetype 值为“Parent”。

xml xslt sharepoint xpath predicates

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

具有可变数量参数的Prolog谓词

我正在用PROLOG写一个Sudoku-Solver.我希望求解器能够使用所有可能大小的Sudokus,所以我自然需要构造带有可变数量参数的谓词.(例如,在Sudoku中构造"块".)

如何使用可变数量的参数构造或模拟谓词?

prolog sudoku predicates

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

是否可以将Take(),Skip(),OrderBy()等作为谓词传递给函数?

这是否可以轻松实现,还是应该添加skip/take作为参数?

public IEnumerable<T> GetKittens<T>(Expression<Func<Kitten, bool>> predicate = null) where T : KittenViewModel, new()
{

  var kittenModels = GetModels(); // IQueryable<T>

  // how can I make the predicate say 'select the top 10' or 
  // 'skip 5 and take 5'

  kittenModels = kittenModels.Where(predicate); 

}
Run Code Online (Sandbox Code Playgroud)

c# predicates

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

JAVA 8将谓词提取为字段或方法?

什么是提取具有多种用途的谓词的更简洁方法.方法或类字段?

这两个例子:

1.Class Field

void someMethod() {
    IntStream.range(1, 100)
        .filter(isOverFifty)
        .forEach(System.out::println);
}

private IntPredicate isOverFifty = number -> number > 50;
Run Code Online (Sandbox Code Playgroud)

2.Method

void someMethod() {
    IntStream.range(1, 100)
        .filter(isOverFifty())
        .forEach(System.out::println);
} 

private IntPredicate isOverFifty() {
    return number -> number > 50;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,现场方式看起来更好一点,但这是正确的方法吗?我有疑虑.

predicates java-8 java-stream

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

在NSFetchedResultsController的谓词中获取属性

我有一个带有.localConcertsfetched属性的Artist对象(基本上是完整.set的子concerts集),我可以在NSFetchedResultsController谓词中使用该属性吗?

这是我正在尝试的:

NSFetchRequest *request = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Artist" inManagedObjectContext:context];
[request setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"localConcerts.@count > 0"];
[request setPredicate:predicate];

fetchedResultsController = [[NSFetchedResultsController alloc]
                            initWithFetchRequest:request
                            managedObjectContext:context
                            sectionNameKeyPath:nil
                            cacheName:nil];
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

'keypath localConcerts not found in entity <NSSQLEntity Artist id=1>'
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者只是不可能在谓词中使用获取的属性?

iphone core-data predicates

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

C#中的谓词问题

我有以下方法定义(EDITED删除冗余通用):

public static T SearchAgaistValues<T>(Dictionary<string, string> input, 
string key, List<T> values, Predicate<T> match, out string[] cmdParams)
Run Code Online (Sandbox Code Playgroud)

我的简化要求如下.我需要寻找inputkey,如果找到,看看它的值出现在values.但是,它values是通用的(显然包含我需要匹配的字符串).因此,我看到它的方式,我必须传递谓词方法来执行匹配.

但是,Predicate<T>我所看到的每个例子都有一个硬编码的比较器.我需要将找到的key's值与每个项目进行比较values.但是,我无法传递这些值.

我无法看到如何使用基于委托的匹配方法在foreach循环之外执行此操作.

我在这里错过了什么吗?

.net c# delegates predicates c#-4.0

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

NHibernate与LINQ(谓词?)

请原谅我,如果我有点不清楚,我刚刚开始使用NHibernate/LINQ/Lambda表达式,我实际上不确定要寻找什么...

我在过去的4到5年里一直在使用.NET 2.0,除了我自己之外没有机会进化,这就是我现在开始学习新技术的原因:)

我一直在阅读很多博客和帖子,并开始了一个个人的小项目,我尝试尽可能地使用Repository模式.

我现在处于以下情况:

  • MyProject.Core.dll:我有这个核心程序集,包含所有业务逻辑并设置IRepository合同.它对存储库的实际实现一无所知,它是在运行时使用IoC解决的,所以这个核心dll没有引用NHibernate dll的.
  • MyProject.Data.NHibernate.dll:存储库的实现包含在此程序集中,该程序集包含对NHibernate dll的所有必要引用.

我的Repository实现看起来像这样:

public class GenericRepository<T> : IGenericRepository<T> where T : class
{
    ...
    public virtual IQueryable<T> All()
    {
        IList<T> entities = Session
            .CreateCriteria( typeof( T ) )
            .List<T>();
        return entities.AsQueryable<T>();
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

所以在我的核心DLL中,我可以获得对我的存储库的引用,并执行以下操作:

IList<Person> people = myRepository.All().ToList();
Run Code Online (Sandbox Code Playgroud)

这看起来效果很好,它查询数据库并返回Person表中的所有行.

但是,现在我想要做的是添加谓词:

IList<Person> daves = myRepository.All().Where(p => p.Name == "Dave").ToList();
Run Code Online (Sandbox Code Playgroud)

这很好,但当然会发生的事情是NHibernate首先查询数据库以返回所有行,然后LINQ过滤结果只返回名称为"Dave"的结果.

我一直在寻找互联网,但我还没有找到如何实现这一点,我发现很多东西似乎已经过时了,例如,我经常看到调用NH session.Linq()方法,我看着我的dll,这种方法无处可寻......

如果有人能指出我正确的方向,也许还有一些例子,我会非常感激.

非常感谢你!

linq nhibernate predicates

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

Java8,有过滤器吗?

我想对一个集合进行分组,但我不希望聚合包含一些值.这样做的最佳解决方案是什么?

解决方案可能是收集器,filtering(Predicate,Collector)但没有这样的收集器.没有实现自己的收藏家,有没有办法做到这一点?

IntStream.range(0,100).collect(
    groupingBy(
       i -> i % 3,
       HashMap::new,
       filtering( i -> i % 2 == 0, toSet() )
    )
);
Run Code Online (Sandbox Code Playgroud)

java predicates collectors

3
推荐指数
2
解决办法
1142
查看次数

Android列表过滤器

我有一个文件对象List我想根据类型学(音频,视频,照片)或捕获日期/时间或Exif信息(如果是照片)等一些规则进行过滤.我可以用一些例如cicles来做.

有一种聪明的方法吗?我在某地读到解决方案可能是使用Google Guava的Predicates,但我无法理解它是如何工作的.有什么建议吗?谢谢

android filtering list guava predicates

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