Selecting a subset of elements in LINQ C# with the Take operator

The Take extension method in LINQ returns a specified number of elements from a sequence. Its usage is very simple. Consider the following data collection:

string[] bands = { "ACDC", "Queen", "Aerosmith", "Iron Maiden", "Megadeth", "Metallica", "Cream", "Oasis", "Abba", "Blur", "Chic", "Eurythmics", "Genesis", "INXS", "Midnight Oil", "Kent", "Madness", "Manic Street Preachers"
, "Noir Desir", "The Offspring", "Pink Floyd", "Rammstein", "Red Hot Chili Peppers", "Tears for Fears"
, "Deep Purple", "KISS"};

The following query returns the first 10 elements from the collection:

IEnumerable<String> topItems = bands.Take(10);
foreach (string item in topItems)

…whicl will print the array items 0-9.

You’re free to combine the Take operator with other operators, such as Select. Example:

var anonymous = bands.Take(10).Select(b => new { Name = b, Length = b.Length });
foreach (var anon in anonymous)
	Console.WriteLine("Band name: {0}, length: {1}", anon.Name, anon.Length);

The query takes the top 10 items and runs the Select operator only on those 10 items, not the entire collection. Here’s the output:

Take operator output

You can view all LINQ-related posts on this blog here.


About Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Elliot Balynn's Blog

A directory of wonderful thoughts

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog


Once Upon a Camayoc

Bite-size insight on Cyber Security for the not too technical.

%d bloggers like this: