LINQ는 Android와 함께 작동합니다

요약

Java 8은 LINQ와 비슷한보다 우아하고 읽기 쉬운 방식으로 컬렉션을 조작 할 수있는 스트림 API를 도입했습니다 .그물. 그러나 Android에서 Stream API를 사용하면 특정 API 수준으로 제한 될 수 있습니다. 다행히도 Android에서 LINQ와 같은 스타일의 코딩을 제공하는 Android-Linq와 같은 라이브러리가 있습니다.

키 포인트

1. linq .Net은 컬렉션을 조작하기위한 강력한 도구입니다. 간결한 구문을 제공하고 필터링, 정렬 및 집계와 같은 일반적인 작업에 필요한 코드의 양을 줄입니다.

2. Java 8의 스트림 API는 LINQ와 유사한 기능을 제공합니다. 필터링, 매핑, 감소 등과 같은 컬렉션에서 기능 스타일 작업이 가능합니다.

삼. 안드로이드에서 스트림 API 사용은 특정 API 레벨로 제한됩니다. Android에서 Stream API 기능을 사용하려면 Android 7을 대상으로해야합니다.0 이상.

4. Android-Linq와 같은 라이브러리는 Android에서 LINQ와 같은 스타일을 제공합니다. 이 라이브러리를 사용하면 LINQ와 유사하게 읽기 쉽고 관리 가능한 방식으로 코드를 작성할 수 있습니다 .그물.

질문

1. Lambda Expressions 및/또는 LINQ를 모바일 플랫폼에서 사용할 수 있습니까??

예, Lambda Expressions 및 LINQ는 모바일 플랫폼에서 사용할 수 있습니다. 그러나 이러한 기능의 가용성은 특정 플랫폼과 해당 버전에 따라 다를 수 있습니다.

2. 모바일 플랫폼에서 Lambda Expressions 및 LINQ 사용에 대한 제한 사항이 있습니까??

예, 모바일 플랫폼에서 Lambda Expressions 및 LINQ 사용에 제한이있을 수 있습니다. 예를 들어, 일부 기능은 Android 용 Java 8의 Stream API의 경우와 같이 특정 API 수준에서만 사용할 수 있습니다.

삼. Android에서 LINQ와 같은 기능을 사용할 수있는 라이브러리가 있습니까??

예, Android-Linq와 같은 Android에서 LINQ와 같은 기능을 제공하는 라이브러리가 있습니다. 이 라이브러리를 사용하면 LINQ와 유사하게 더 간결하고 읽기 쉬운 방식으로 코드를 작성할 수 있습니다 .그물.

4. Lambda Expressions 및 LINQ를 사용하려면 특정 Android API 레벨을 타겟팅해야합니까??

예, Lambda Expressions 및 LINQ 기능을 사용하려면 특정 Android API 수준을 목표로 할 수 있습니다. 예를 들어 Android 용 Java 8의 Stream API를 사용하려면 Android 7을 대상으로해야합니다.0 이상.

5. Kotlin과 함께 Android 개발에 LINQ를 사용할 수 있습니다?

예, LINQ는 Kotlin과 함께 Android 개발에 사용될 수 있습니다. 그러나 가용성과 사용량은 LINQ를 사용하는 것과 비교하여 다를 수 있습니다 .그물 또는 자바.

6. Android에서 Android-Linq와 같은 라이브러리를 사용할 때 성능이 영향을 미칩니다?

Android-Linq와 같은 라이브러리는 반사 또는 프록시를 사용하지 않기 때문에 성능에 거의 영향을 미치지 않습니다. 따라서 그러한 라이브러리를 사용하면 안드로이드 애플리케이션의 성능에 큰 영향을 미치지 않아야합니다.

7. Android에서 LINQ 또는 Stream API를 사용하여 수행 할 수있는 몇 가지 일반적인 작업은 무엇입니까??

안드로이드에서 LINQ 또는 스트림 API를 사용하여 수행 할 수있는 일부 일반적인 작업에는 필터링, 매핑, 감소, 정렬 및 그룹화 컬렉션이 포함됩니다.

8. 내 Android 프로젝트에서 Android-Linq 사용을 시작하려면 어떻게해야합니까??

Android-Linq 사용을 시작하려면 프로젝트의 Gradle 파일에 라이브러리를 종속성으로 추가해야합니다. 종속성 블록에 다음 코드를 추가하여이를 수행 할 수 있습니다

<의존성>
‘br.com.Zbra : Android-Linq : 1.1.0 ‘
</종속성>

9. 7보다 빠른 안드로이드 버전에서 스트림 API 기능을 사용할 수 있습니까?.0?

아니요, 스트림 API 기능은 Android 버전 7에서만 사용할 수 있습니다.0 이상. 이전 버전의 Android를 지원 해야하는 경우 컬렉션 조작을위한 대체 방법을 사용해야합니다.

10. Android 용 Unity 3D 개발에 LINQ 또는 Stream API를 사용할 수 있습니까??

예, LINQ 또는 스트림 API는 Android 용 Unity 3D 개발에 사용될 수 있습니다. 그러나 가용성 및 사용량은 Unity 3D의 특정 버전 및 대상 Android API 레벨에 따라 다를 수 있습니다.

11. Android에서 LINQ와 같은 기능을 달성하기위한 대체 라이브러리 또는 접근 방식이 있습니까??

예, Android에서 LINQ와 같은 기능을 달성하기위한 대체 라이브러리와 접근 방식이 있습니다. 다른 인기있는 도서관에는 Jooby Lambda와 Jinq가 있습니다. 또한 유사한 기능을 달성하기 위해 사용자 정의 유틸리티 방법을 작성할 수도 있습니다.

12. 안드로이드를위한 Kotlin Development에서 Lambda Expressions 및 LINQ를 사용할 수 있습니까??

예, Lambda Expressions and LINQ는 Android 용 Kotlin Development에서 사용할 수 있습니다. Kotlin은 Lambda Expressions를 지원하며 자체 기능적 프로그래밍 기능 세트를 제공합니다.

13. Xamarin에서 LINQ 또는 스트림 API를 사용할 수 있습니다.안드로이드 개발?

예, LINQ 또는 스트림 API는 Xamarin에서 사용할 수 있습니다.안드로이드 개발. Xamarin.Android는 C#과 호환되며 LINQ 및 LAMBDA 표현을 지원합니다.

14. 안드로이드의 루프 용 전통에 비해 LINQ 또는 스트림 API 사용간에 성능 차이가 있습니까??

안드로이드의 루프의 전통적인 것에 비해 LINQ 또는 스트림 API 사용간에 약간의 성능 차이가있을 수 있습니다. 그러나 성능에 미치는 영향은 일반적으로 최소화되며 특정 사용 사례에 따라 다를 수 있습니다.

15. C ++ 또는 Python과 같은 다른 프로그래밍 언어와 함께 Android 개발에서 LINQ 또는 Stream API를 사용할 수 있습니까??

아니요, LINQ 및 Stream API는 각각 C# 및 Java와 같은 언어에 따라 다릅니다. C ++ 또는 Python과 같은 다른 프로그래밍 언어와 함께 Android 개발에 직접 사용할 수 없습니다. 그러나 유사한 기능을 제공하는 언어에 대해 대체 라이브러리 또는 접근 방식을 사용할 수 있습니다.


LINQ는 Android와 함께 작동합니다

구매 총 가격을 계산하십시오

모바일 플랫폼에서 Lambda Expressions 및/또는 LINQ 작업 수행?

IRC 방에있는 누군가에 의해 모바일 플랫폼이 지원하지 않는 “표현 나무”로 분해된다고 들었습니다.

여기와 포럼에서 검색을 수행하면 두 번째 의견이 발생하지 않았으므로 직접 물어볼 것이라고 생각했습니다.

LINQ의 유창한 구문 및/또는 쿼리 표현식을 사용하고 모바일 플랫폼에서 성공적으로 컴파일 한 사람이 있습니까??

Superpig
언어
vexe

этим пользователям нравится это

ответов

  • отсортировать :

시장성. ответ

ответ Mike 3 · 26/03/11 08:29

익명 대의원들과 잘 작동해야합니다. e.g.

var fives = Yourenumerator.여기서 (대표단 (int x) < return x == 5; >); 

추가 테스트를 통해 기본 람다가 작동합니다

var fives = Yourenumerator.여기서 (x => x == 5); 

여전히 몇 가지 문제가 있지만 가장 가능성이 높은 문제를 해결할 수 있습니다

этим пользователям нравится это

그래도 익명 대표를 설명해 주셔서 감사합니다. 내가 그들을 그보다 훨씬 더 못 생겼다는 책.

답을 편집했습니다 🙂

ответ от Dubbreak · 15/02/13 20:09

오래된 질문이지만 내 경험을 추가 할 것이라고 생각했습니다.

나는 Unity 3에서 일한다.5.데스크탑 및 Android를 대상으로하는 X 프로젝트 (특히 터치 스크린 PC 및 Android 태블릿). 우리는 Out Project에서 LINQ를 광범위하게 사용하고 아직 문제가 발생하지 않았습니다.

즉, 클라이언트 측면 쿼리는 매우 간단하다고 말하면 (Min, Max, Orderby, Select). 우리는 많은 확장 방법을 사용합니다 (Tolist, selectatindex 등). 아직 문제가 없었습니다.

iOS를 대상으로하지 않았으므로 말할 수 없습니다.

LINQ는 Android와 함께 작동합니다

Android에 대한 프로그래밍을 시작한 C# 개발자라면 Java가 C#과 비슷하다는 사실에 놀랐습니다. 그러나 곧 당신은 당신이 무언가를 놓치고 있다는 것을 알게됩니다.

Java 8은 코드가 적은 코드를 사용하여 컬렉션을 조작 할 수 있고 더 읽기 쉬운 방식으로 LINQ와 매우 유사한 새로운 스트림 API를 제공합니다 (모든 운영자 LINQ 또는 Stream API가있는 경우에도 달리 할 수 ​​있지만)

허락하다&rsquo; 간단한 예에서 비교하십시오

var dataset = new [];
// .순 예제
데이터 세트.여기서 (x => x> 5).합집합();
// Java 예제
데이터.개울().필터 (x-> x> 5).maptoint (Integer :: intvalue).합집합();
// 결과 : 40

이 예를 보거나 인터넷에서 다른 사람을 볼 수 있지만 내가 찾은 것은 .순 코드는 나에게 더 읽기 쉽고 종종 더 짧습니다. 그러나 이것은 내가 프로그램했다는 사실 일 수 있습니다 .Java보다 더 긴 순.

어쨌든, Android에서 Java Stream API를 사용하고 7 미만의 Android 버전을 지원하려면.0 아마도 당신에게 원하는 것&rsquo;티. 스트림 API 지원 API는 Android API 수준에 따라 달라 지므로 Java 8 Stream API의 모든 위대한 것을 Android 7을 목표로하는 경우에만 사용할 수 있습니다.0 또는 Android 8.오늘 발표 된 0 Oreo.

운 좋게도 Github에는 LINQ 스타일의 글쓰기 코드를 사용할 수있는 라이브러리가 거의 없습니다.

이 예를 확인하십시오 :

List GuestScheckout = stream (EvisitorGuests).여기서 (x-> x.getstatus ().동등한 ( “CheckedIn”)).tolist ();

Java와 Android에서는 많은 보일러 플레이트 코드를 작성하는 것으로 알려져 있으며 코드를 더 읽기 쉽고 메인 타이블로 만드는 것이 좋습니다.

안드로이드 LINQ

도서관은 Android-Linq라고하며 Altought It는 그렇지 않습니다&rsquo;t는 훨씬 인기있는 것 같다 (적어도 별의 수에 의해). 도서관은 반사 또는 프록시를 사용하지 않기 때문에 성능에 거의 영향을 미치지 않습니다. 시작하기가 쉽습니다 – 이것을 Gradle 파일에 넣으십시오

. 저장소 < jcenter() >. 

'br.com.Zbra : Android-Linq : 1.1.0 '

또한 Android 용 Retrolambda를 설정해야하지만 Gradle 파일에 일부 코드를 복사하는 Mather입니다.

first (), firstornull (), sum (), skip (), take (), aggregate (), count (), groupby (), orderby (), whby ()와 같은 많은 메소드가 지원됩니다.

Zbra-Dev/Android-Linq

이 커밋은이 저장소의 어떤 지점에도 속하지 않으며, 저장소 외부의 포크에 속할 수 있습니다.

스위치 브랜치/태그

지점 태그

분기를로드 할 수 없었습니다

보여줄 것이 없습니다

태그를로드 할 수 없습니다

보여줄 것이 없습니다

이미 사용중인 이름입니다

제공된 지점 이름이 이미 존재합니다. 많은 git 명령은 태그와 분기 이름을 모두 받아들이 므로이 분기를 만드는 것이 예기치 않은 동작을 유발할 수 있습니다. 이 지점을 만들고 싶습니까??

취소 생성

  • 현지의
  • Codespaces

https github cli

웹 URL을 사용하여 SVN과 함께 git 또는 체크 아웃 사용.

공식 CLI와 함께 빨리 일하십시오. CLI에 대해 자세히 알아보십시오.

필요한 로그인

Codespace를 사용하려면 로그인하십시오.

Github 데스크탑을 시작합니다

아무 일이 발생하지 않으면 Github 데스크탑을 다운로드하고 다시 시도하십시오.

Github 데스크탑을 시작합니다

아무 일이 발생하지 않으면 Github 데스크탑을 다운로드하고 다시 시도하십시오.

Xcode를 시작합니다

아무 일이 발생하지 않으면 Xcode를 다운로드하고 다시 시도하십시오.

Visual Studio 코드 시작

Codespace가 준비된 후에 열립니다.

Codespace를 준비하는 데 문제가있었습니다. 다시 시도하십시오.

최신 커밋

git 통계

파일

최신 커밋 정보를로드하지 못했습니다.

최신 커밋 메시지

시간을 투입하십시오

readme.MD

C# LINQ 스타일 쿼리 및 Java 8 클로저를 사용하여 컬렉션을 쉽게 조작하십시오.

Android LINQ는 Microsoft C# LINQ 라이브러리에서 영감을 얻은 컬렉션 조작 유틸리티의 작은 서브 세트이며 New Java 8 Stream () API를 사용하려는 Android 개발자를 대상으로합니다.

Android 용 Retrolambda를 사용하면 개발자는 클로저 및 기타 새로운 Java 8 기능을 활용할 수 있습니다. 불행히도, 그것은 가장 멋진 기능인 스트림 API의 사용을 허용하지 않습니다. 그러나 Android LINQ와 함께 사용하면 몇 줄의 코드로 강력한 수집 조작을 수행 할 수 있습니다.

Android LINQ는 반사 또는 프록시를 사용하지 않기 때문에 성능에 거의 영향을 미치지 않습니다. C# Contretpart로서 그것은 Monads 개념을 기반으로하며, 일종의 데코레이터 패턴 구현을 설명하는 멋진 단어이며, 많은 분류 및 주문은 기본 Java API를 호출하고 있습니다.

어쨌든, 당신은 걱정할 필요가 없습니다. 이것을 Gradle/Maven에 추가하고 수동 컬렉션 반복으로 고통받지 마십시오!

Android LINQ를 사용하려면 먼저 안드로이드 용 Retrolambda를 설정하여 Java 8의 멋진 클로저를 사용할 수 있습니다 (걱정하지 마십시오.Gradle 파일).

이제이 줄을 프로젝트 빌드에 추가하십시오.Gradle (파일은 Bintray jcenter에서 호스팅되므로 리포지토리 목록에도 추가하는 것을 잊지 마십시오).

안드로이드 스튜디오> = 4.0

안드로이드 스튜디오 4.0 NE 버전의 Gradle을 소개했는데 그로 인해 사용법이 약간 변경되었습니다. https : // jitpack을 참조하십시오.io/#zbra-solutions/android-linq/1.1.자세한 내용은 0.

. AllProjects < repositories < . maven < url 'https://jitpack.io' >>> . 

의존성

. 저장소 < jcenter() >. 

'br.com.Zbra : Android-Linq : 1.1.0 ' 

표준 Java 8

Android LINQ는 표준 Java를 사용하므로 안드로이드 외부에서도 사용할 수 있습니다.

 . Jcenter http : // jcenter.빈트레이.com . . 

 Br.com.Zbra 안드로이드 린 Q 1.1.0  

연락처에서 이름을 얻습니다

list contactnames = stream (contacts) .선택 (C-> C.getName ()) .tolist (); 

27 세 이상의 연락처를 얻습니다

list contacts = stream (연락처) .여기서 (c-> c.getage ()> = 27) .tolist (); 

이름별로 연락처를 정렬 한 다음 연령별로 정렬하십시오

list contactnames = stream (contacts) .Orderby (c-> c.getName ()) .당시 (c-> c.나이()) .tolist (); 

카테고리 별 그룹 제품

Map> ProductsByCategory Stream (Products) .Groupby (p-> p.getCategory ()) .Tomap (g-> g.getkey () / * 카테고리 * /, g.getElements () / * 스트림 * /) 

구매 총 가격을 계산하십시오

이중 총 = 스트림 (구매.getitems ()) .합 ((구매 p) -> p.getPrice ()); 

더 많은 방법이 있습니다 : First (), Single (), Contret (), any (), Aggregate (), count (), take (), skip () 및 reverse ()가 모두 사용할 수 있습니다. 재미있어!

풀 요청을 환영합니다!

피드백을 보내고 요청을 많이 당깁니다! 버그, 누락 된 기능을 찾거나 개선 제안이 있으면 문제를 제기하는 것을 두려워하지 말고 참석하기 위해 최선을 다하겠습니다.

에 대한

C# LINQ 스타일 쿼리 및 Java 8 클로저를 사용하여 컬렉션을 쉽게 조작하십시오.

LINQ- 디지털 비즈니스 카드

네트워킹의 미래 인 LINQ에 오신 것을 환영합니다. 연결을 유지하는 포괄적 인 프로필을 구축하여 네트워크를 만들고 관리 및 성장시킵니다.

명함은 너무 쉽게 잊혀지거나 손실되거나 사용되지 않습니다. 거기에 LINQ와 함께&rsquo;당신이 새로운 사람을 만나면 어색한 교환이 아닙니다. 대기 중.

성공적인 네트워크는 꿈을 꾸고 있습니다. LINQ는 비즈니스, 경력, 브랜드 및 조직에 차이를 만드는 관계에 가까이있을 수 있습니다.

업데이트되었습니다

2023 년 5 월 16 일

데이터 안전

Arrow_forward

안전은 개발자가 데이터를 수집하고 공유하는 방법을 이해하는 것으로 시작합니다. 데이터 개인 정보 및 보안 관행은 귀하의 사용, 지역 및 연령에 따라 다를 수 있습니다. 개발자는이 정보를 제공했으며 시간이 지남에 따라 업데이트 할 수 있습니다.