나는 List<Product[]>
을 가지고 있으며 이것들을 하나의 Product[]
에 가입시켜야합니다.Linq를 사용하여 List에서 여러 배열을 병합하는 방법은 무엇입니까?
19
A
답변
44
SelectMany
을 입력 한 다음 ToArray
을 입력하면됩니다.
var result = source.SelectMany(i => i).ToArray();
4
그런 다음 .ToArray()
.Concat()
확장뿐만 아니라 방법 및 사용할 수있는 더 복잡한 들어 x.Concat(y).Concat(z).ToArray();
0
는 IEnumerable
, GetEnumerator
및 yield
이 당신의 친구와 슈퍼 확대됨에 있습니다 조인. 그냥 재미에 대한, 여기에 몇 가지 코드가 자신의 사용자 지정 방법을 사용하여 확장 Linq 보여주는 무서운 필요가 없습니다;
public static class MyLinqExtensions
{
public static IEnumerable<int> RoundRobin(this IEnumerable<int> a, IEnumerable<int> b)
{
var ae = a.GetEnumerator();
var be = b.GetEnumerator();
bool aHasNumber = ae.MoveNext();
bool bHasNumber = be.MoveNext();
while (aHasNumber || bHasNumber)
{
if (aHasNumber)
{
yield return ae.Current;
aHasNumber = ae.MoveNext();
}
if (bHasNumber)
{
yield return be.Current;
bHasNumber = be.MoveNext();
}
}
}
}
void Main()
{
var arr1 = new[] { 1, 2, 3, 4 };
var arr2 = new[] { 4, 5, 6 };
var arr3 = new[] { 7, 8, 9};
var arr4 = new int[] { };
// arrays the same size
Assert.AreEqual(new[] { 4, 7, 5, 8, 6, 9 }, arr2.RoundRobin(arr3).ToArray());
// array 1 bigger than array 2
Assert.AreEqual(new[] { 1, 4, 2, 5, 3, 6, 4 }, arr1.RoundRobin(arr2).ToArray());
// array 1 smaller than 2
Assert.AreEqual(new[] { 4, 1, 5, 2, 6, 3, 4 }, arr2.RoundRobin(arr1).ToArray());
// 2 empty, 1 not
Assert.AreEqual(new[] { 4, 5, 6 }, arr2.RoundRobin(new int[] { }).ToArray());
// 1 empty, 2 not
Assert.AreEqual(new[] { 1, 2, 3, 4 }, arr1.RoundRobin(new int[] { }).ToArray());
// both empty
Assert.AreEqual(new int[] { }, arr4.RoundRobin(arr4).ToArray());
// prove it's Linq
Assert.AreEqual(new[] { 1, 4, 2}, arr1.RoundRobin(arr2).Take(3).ToArray());
Console.WriteLine("pass");
}
관련 문제
- 1. LINQ를 사용하여 데이터 목록을 그룹화하고 병합하는 방법은 무엇입니까?
- 2. plist에서 두 개의 배열을 병합하는 방법은 무엇입니까?
- 3. 이 두 배열을 병합하는 방법은 무엇입니까?
- 4. Java에서 두 개의 배열을 병합하는 방법은 무엇입니까?
- 5. SQLite에서 여러 데이터베이스 파일을 병합하는 방법은 무엇입니까?
- 6. 여러 PDB 파일을 병합하는 방법은 무엇입니까?
- 7. 여러 패치 파일을 병합하는 방법은 무엇입니까?
- 8. WPF MVVM을 사용하여 메뉴를 병합하는 방법은 무엇입니까?
- 9. Java를 사용하여 여러 .png 이미지를 단일 이미지로 병합하는 방법은 무엇입니까?
- 10. 여러 배열을 반복하는 방법은 무엇입니까?
- 11. PHP 배열 배열을 사용하여 객체의 배열을 병합하는 방법
- 12. LINQ를 사용하여 여러 데이터베이스에 연결
- 13. p-list에서 눈부심 효과를 제거하는 방법은 무엇입니까?
- 14. PHP에서 오브젝트를 병합하는 방법은 무엇입니까?
- 15. Linq를 사용하여 XML에서 사전 배열을 만들려면 어떻게해야합니까?
- 16. 이미지를 병합하는 방법은 무엇입니까?
- 17. PHP에서 키가 같고 값이 다른 배열을 병합하는 방법은 무엇입니까?
- 18. PHP에서 두 개의 다차원 배열을 병합하는 방법은 무엇입니까?
- 19. C에서 바이트 배열을 병합하는 가장 효율적인 방법은 무엇입니까?
- 20. android : 하나의 비트 맵에서 비트 맵 배열을 병합하는 방법은 무엇입니까?
- 21. 여러 URL/경로를 다차원 배열로 병합하는 방법은 무엇입니까?
- 22. 두 배열을 하나로 병합하는 PHP
- 23. Linq를 사용하여 XML로 데이터를 검색하는 방법은 무엇입니까?
- 24. Linq를 사용하여 데이터베이스에서 ID를 얻는 방법은 무엇입니까?
- 25. LINQ를 사용하여 목록을 정렬하는 방법은 무엇입니까?
- 26. LINQ를 사용하여 데이터베이스에 레코드를 추가하는 방법은 무엇입니까?
- 27. Linq를 사용하여 SQL에 값을 트림하는 방법은 무엇입니까?
- 28. Linq를 사용하여 XML에 요소를 삽입하는 방법은 무엇입니까?
- 29. linq를 사용하여 컬렉션의 속성으로 주문하는 방법은 무엇입니까?
- 30. LINQ를 사용하여 열거하는 올바른 방법은 무엇입니까?
앞으로 더 명확하게 질문을 작성하십시오. –
다음 번에 더 많은 도움이 될 것입니다. Dave –
질문에 아무런 문제가 없습니다. – snowcode