Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LINQ的相似特征_Java_Php_Linq - Fatal编程技术网

Java LINQ的相似特征

Java LINQ的相似特征,java,php,linq,Java,Php,Linq,在不同的语言(如JAVA、PHP等)中是否有类似于LINQ.NET的功能?许多语言都有语法或库函数,用于以功能性的方式对对象序列进行操作。例如,Python有lambda函数、列表理解、生成器和itertools模块 然而,我不知道有哪种语言能像LINQ那样简洁明了地做到一切。请记住,LINQ不仅仅是在内存结构上操作的一种方式—LINQ有许多提供程序共享类似的接口: LINQ到对象 功能结构 解决并发冲突 等 微软在LINQ方面做得很好。我相信一些其他语言会从LINQ的成功中得到启发,并考虑如何

在不同的语言(如JAVA、PHP等)中是否有类似于LINQ.NET的功能?

许多语言都有语法或库函数,用于以功能性的方式对对象序列进行操作。例如,Python有lambda函数、列表理解、生成器和itertools模块

然而,我不知道有哪种语言能像LINQ那样简洁明了地做到一切。请记住,LINQ不仅仅是在内存结构上操作的一种方式—LINQ有许多提供程序共享类似的接口:

LINQ到对象 功能结构 解决并发冲突 等
微软在LINQ方面做得很好。我相信一些其他语言会从LINQ的成功中得到启发,并考虑如何在不久的将来添加相似的特征。

< P>虽然基本的LINQ特征,如选择MAP和WHO过滤器,都存在于几乎所有的现代编程语言中,但在SQL中,SQL的构建是一个ORM

的工作。 例如,Django ORM允许您使用以下语法进行查询:

Posts.objects.filteruser=peter.annotatecomment\u count=count'comment'。按'comment\u count'排序

在LINQ中有点像不太确定:

from p in posts
where p.user == peter
select new { post = p, comment_count = comments.Where(c => c.post == p).Count() }
order by comment_count

当然有,但php是一种编程语言,不像.net framework那样是一种框架。因此,如果您想使用功能,您应该下载一些库、orm或框架以获得更高的效率。我不认为php有那么强大的功能,那可能是linq的等价物。

Scala提供了与linq类似的功能

示例:查找所有讲丹麦语的名为Fred的与会者

C:

斯卡拉:


用类似PHP的语言部分实现LINQ。

我真的很惊讶没有人谈论它,但我使用了from端口,它工作得不错。它工作得不错,你可以这样做:

$result = from('$employee')
    ->in( $employeeTable )
    ->where('$employee => strlen($employee->Name) < 5')
    ->orderBy('$employee->Name')
    ->select('$employee');

我甚至为此写了一篇文章。

这是有效的Java,但需要这个库:


您是否要求类似的语法或库功能?重复检查这个:github.com/nicholas22/jpropel,例如:新字符串[]{james,john,john,eddie};对于Scala:LINQ本身不是ASP.NET的一部分。它是.NET框架的一部分。ASP.NET也是.NET框架的一部分。.NET Framework中的类型可以在任何.NET语言中使用。VB.NET和C都是.NET语言,它们的语言语法使.NET Framework的LINQ功能更易于使用。
val xs = for {
  att <- attendees
  if att.name == "Fred"
  lang <- att.spokenLanguages
  if lang == "Danish"
} yield att
$result = from('$employee')
    ->in( $employeeTable )
    ->where('$employee => strlen($employee->Name) < 5')
    ->orderBy('$employee->Name')
    ->select('$employee');
import java.util.Arrays;
import lombok.ExtensionMethod;
import lombok.val;
import propel.core.utils.Linq;
import static propel.core.functional.predicates.Predicates.*;
import static propel.core.functional.projections.Projections.*;

@ExtensionMethod({Linq.class})
public class Main
{

  /**
   * @param args
   */
  public static void main(String[] args)
  {
    val names = new String[] { "john", "james", "john", "eddie" }.where(startsWith("j")).distinct();    
    System.out.println(Arrays.toString(names));

    // prints "[john, james]"
  }
}