📜  c# combine list of bool - C# Code Example(1)

📅  最后修改于: 2023-12-03 14:39:42.516000             🧑  作者: Mango

C# Combine List of Bool - Code Example

Combining or merging different lists of boolean values is a common problem in programming. In this code example, we will demonstrate how to combine several lists of bool values in C#.

Method 1: Concatenation

One way to combine bool lists is by using the Concat method in LINQ. This method takes two or more IEnumerable<T> sequences and combines them into a single sequence.

List<bool> boolList1 = new List<bool>() { true, false, true };
List<bool> boolList2 = new List<bool>() { false, true, false };
List<bool> boolList3 = new List<bool>() { true, true, false };

List<bool> combinedList = boolList1.Concat(boolList2).Concat(boolList3).ToList();

In the above example, we created three different bool lists and then concatenated them using the Concat method. The resulting combinedList contains all the elements of the three lists.

Method 2: Zip

Another way to combine bool lists is using the Zip method in LINQ. This method takes two or more sequences and combines them by applying a specified function to the corresponding elements of each sequence.

List<bool> boolList1 = new List<bool>() { true, false, true };
List<bool> boolList2 = new List<bool>() { false, true, false };
List<bool> boolList3 = new List<bool>() { true, true, false };

List<bool> combinedList = boolList1.Zip(boolList2, (x, y) => x && y)
                                    .Zip(boolList3, (x, y) => x && y)
                                    .ToList();

In the above example, we created three different bool lists and then used the Zip method to apply the && operator to the corresponding elements of each sequence. The resulting combinedList contains only the elements that evaluate to true in each of the lists.

Conclusion

By using either the Concat or Zip method in LINQ, we can easily combine several lists of bool values in C#. Depending on our specific requirements, we can choose the method that suits our needs the best.