我在控制器中有一个List
Run Code Online (Sandbox Code Playgroud)List<string> myList = new List<string>(); myList.Add(aString); ViewBag.linkList = myList;
然后在我试图做的视图中
Run Code Online (Sandbox Code Playgroud)@ViewBag.linkList.First()
它给了我错误:'System.Collections.Generic.List'不包含'First'的定义
如果我做
@ ViewBag.linkList [0]
它工作正常.
我已经把它@using System.Linq放在了视野中.我错过了什么吗?Linq是否在视图内工作?
我知道virtual和sealed关键字的定义 ,但是如果你不使用它们中的任何一个方法,默认情况下是否可以覆盖该方法?
我来自vb.net背景.它在vb.net中是这样的(来自MSDN):
如果未指定Overridable或NotOverridable修饰符,则默认设置取决于属性或方法是否覆盖基类属性或方法.如果属性或方法重写基类属性或方法,则默认设置为Overridable; 否则,它是NotOverridable.
我只是想知道在C#中是否也是如此.
该逻辑用于找到数组中的数字n,其中n和n + 5之间的范围将包括数组中的最多数字.我提出了一个解决方案,但它需要一个嵌套循环,因此它有点慢.有没有办法改善其表现?提前致谢.
数组保证排序.
int[] myArray = new int[]{1,2,4,5,7,9,15,19};
int bestNumber = 0;
int MaxMatchFound = 0;
for (int o = 0; o < myArray.Length; o++)
{
int TempMatchFound = 0;
for (int i = 0; i < myArray.Length; i++)
{
if (myArray[i] >= myArray[o] && myArray[i] <= (myArray[o] + 5))
{
TempMatchFound++;
}
}
if (TempMatchFound > MaxMatchFound)
{
bestNumber = myArray[o];
MaxMatchFound = TempMatchFound;
}
}
return bestNumber;
Run Code Online (Sandbox Code Playgroud)