Click here to Skip to main content
12,450,981 members (53,286 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as

Stats

13.5K views
3 bookmarked
Posted

Manipulating a string array using a Lambda Expression

, 7 Nov 2012 CPOL
Rate this:
Please Sign up or sign in to vote.
This code will accept an input string and will store the first character of every array element in minimal lines of code.

Introduction

Recently I came across a scenario where I was needed to store only the first character of an input string array. It is easy to do it using loops, however I tried to get the best benefits of lambda expressions which will help write minimal number of lines to achieve this.

Using the code

In this case, I have an input array string and I want to crop everything except the first character from each array element. I am using the Substring method inside a lambda expression to achieve this. The code is as follows:

string[] input1 = new string[] { "Bharti", "Mangesh", "Akash", "Bhavya", "Chetan" };
//OR even if input is comma seperated, multi spaced string 
//string[] input1 = new string[] { "Bharti, Mangesh,Akash, Bhavya, Chetan" }; 

string instr = string.Join(",", input1); 
string[] output1 = instr.Split(',').Select(a => { var t = 
   a.Trim().ToUpper().Substring(0, 1); return t; }).ToArray<string>();

Here the string array output1 will store output as shown below:

output1[0]="B"
output1[1]="M"
output1[2]="A"
output1[3]="B"
output1[4]="C"

The above code has limitation that it works in fair cases and does not handle null values. besides we can replace the substring method with first method inside lambda expression which will do the same task.

//input string which contain null element 
string input1 = "Bharti, Mangesh,Akash,, Bhavya, Chetan";
string[] instr = input1.Split(new char[]{','},  StringSplitOptions.RemoveEmptyEntries);
IEnumerable<char> ie = instr.Where(item => item != null).Select(item => item.TrimStart().First()); 

Here the output enumerable can be converted to char array using ToArray.

We can achive this result using Loop also which goes like this:

string[] output1 = new string[instr.Length];
for (int i = 0, j = instr.Length; i < j; i++)
{
     string item = instr[i];
     if (!string.IsNullOrWhiteSpace(item))
     {
          output1[i] = new String(item.TrimStart().Substring(0, 1).ToUpper().ToCharArray());
     }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Neeraj_Maurya
Software Developer (Senior) Melstar Infotech Ltd.
India India
"Neeraj is very hardworking and talented guy. i worked with him for 3 years,he is helping in nature and will resolved any difficulty or coding problem with lot of enthusiasm with quality deliverable."

(Courtesy: LinkedIn endorsement posted by my ex-colleague Roshan Basekar)

- Thanks Roshan
-----------------------------------------------------------------------------------

You may also be interested in...

Pro
Pro

Comments and Discussions

 
GeneralMy vote of 5 Pin
Christian Amado6-Nov-12 8:15
memberChristian Amado6-Nov-12 8:15 
GeneralRe: My vote of 5 Pin
Neeraj_Maurya6-Nov-12 17:13
memberNeeraj_Maurya6-Nov-12 17:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160826.1 | Last Updated 7 Nov 2012
Article Copyright 2012 by Neeraj_Maurya
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid