TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# Single Method

This C# example program uses the Single extension from System.Linq.

Single searches for single instances.

It is found in System.Linq. With it, we search a collection for a single instance of an element matching a condition. If the collection has any number other than one element, we get an exception.

Example. This program creates an array of five ints. Only one of the elements is greater than 999. Next, Single is called with a Predicate lambda expression. After this, the parameterless Single method is called on an array with only one element.

Predicate

And: The Single method, when only one match is found, returns that one element.

C# program that uses Single method

using System;
using System.Linq;

class Program
{
    static void Main()
    {
	// Find only element > 999.
	int[] array1 = { 1, 3, 1000, 4, 5 };
	int value1 = array1.Single(element => element > 999);

	// Ensure only one element.
	int[] array2 = { 4 };
	int value2 = array2.Single();

	Console.WriteLine(value1);
	Console.WriteLine(value2);

	// See exception when more than one element found.
	try
	{
	    int value3 = array1.Single(element => element > 0);
	}
	catch (Exception ex)
	{
	    Console.WriteLine(ex.GetType());
	}
    }
}

Output

1000
4
System.InvalidOperationException

What happens if no single matching element is found? The program shows the Single method in a failure case. It tries to find a Single matching the predicate of > 0. There are five matching elements, so an exception is thrown.

Note: The type of the exception is System.InvalidOperationException. This exception is used throughout the .NET Framework.

Discussion. Is Single a useful method? Unfortunately, methods that can throw an exception in a normal circumstance such as Single may be less useful. Perhaps the Single method is best used as a runtime assert.

So: If your program must have a single instance of a certain element, then it can be used to alert you to serious errors.

However, in normal programs where there may be more than a single element, the exception will cause serious performance degradation. Your code could probably be clearer if written in another way.

Summary. The Single method provides a way to ensure there is a single element matching a condition. If no condition is required, the method ensures that the source collection has only one element.

Caution: This method is not useful in all programs that need to determine if a single element exists because of its exception behavior.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf