I want to develop a Generic Extension Method which should arrange the string in alphabetical then by lengthwise ascending order.
I mean
string[] names = { "Jon", "Marc", "Joel",
"Thomas", "Copsey","Konrad","Andrew","Brian","Bill"};
var query = names.OrderBy(a => a.Length).ThenBy(a => a);
What is the way to develop Generic Extension Method?
I tried :
public static class ExtensionOperation
{
public static T[] AlphaLengthWise<T>(this T[] names)
{
var query = names.OrderBy(a => a.Length).ThenBy(a => a);
return query;
}
}
I received :
Error 1: T does not contain definition for Length
Error 2: can not convert
System.Linq.IOrderedEnumerabletoT[].
The first error is because
Lengthis a property of theStringclass while in your generic version the type of the T parameter is not known. It could be any type.The second error is because you return just the query object but not the actual result. You might need to call
ToArray()before returning.With little modifications you could come up with this:
Which you could use like this: