I have written the following code to find out the missing sequence but i am getting the error as i mentioned this is my code
public partial class Missing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<int> daysOfMonth =
new List<int>() { 6, 2, 4, 1, 9, 7, 3, 10, 15, 19, 11, 18, 13, 22, 24, 20, 27, 31, 25, 28 };
Response.Write("List of days:");
foreach (var num in daysOfMonth)
{
Response.Write(num);
}
Response.Write("\n\nMissing days are: ");
// Calling the Extension Method in the List of type int
foreach (var number in daysOfMonth.FindMissing()){Response.Write(number);}
}
public static IEnumerable<int> FindMissing(this List<int> list)
{
// Sorting the list
list.Sort();
// First number of the list
var firstNumber = list.First();
// Last number of the list
var lastNumber = list.Last();
// Range that contains all numbers in the interval
// [ firstNumber, lastNumber ]
var range = Enumerable.Range(firstNumber, lastNumber - firstNumber);
// Getting the set difference
var missingNumbers = range.Except(list);
return missingNumbers;
}
}
I am getting the error as follows Extension method must be defined in a non-generic static class
can any one help me
As the error states, extension methods can only be declared on a non-generic static class. You are attempting to declare the FindMissing
method in the Missing
class, which is not a non-generic static class.
You have two options:
Missing
classMissingExtensions
, to contain the methodThis is what the second option would look like:
public static class MissingExtensions
{
public static IEnumerable<int> FindMissing(this List<int> list)
{
// ...
}
}
This is what you have to write as per Bryan watts
answer
public partial class Missing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Your code
}
}
public static class MissingExtensions
{
public static IEnumerable<int> FindMissing(this List<int> list)
{
// ...
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With