diff --git a/src/Gallium/SelectComponentExtensions.cs b/src/Gallium/SelectComponentExtensions.cs
new file mode 100644
index 0000000..a6fbe19
--- /dev/null
+++ b/src/Gallium/SelectComponentExtensions.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+
+namespace Gallium;
+
+///
+/// Extension methods for selecting components from a list.
+///
+public static class SelectComponentExtensions
+{
+ ///
+ /// Retrieves a component from an entity and return it. If the entity does not have
+ /// the component, it will be
+ /// filtered out.
+ ///
+ /// The entities to process.
+ /// The component type being searched.
+ /// A sequence of T1.
+ public static IEnumerable SelectComponent(this IEnumerable entities)
+ {
+ foreach (Entity entity in entities)
+ {
+ if (entity.TryGet(out T1 v1))
+ {
+ yield return v1;
+ }
+ }
+ }
+
+ ///
+ /// Retrieves a component from an entity and return it. If the entity does not have
+ /// the component, it will be filtered out.
+ ///
+ /// The entities to process.
+ /// The component type being searched.
+ /// A sequence of T1.
+ public static IEnumerable