如何在Collection继承类中找到元素的索引?
public class MyCollection : Collection<MyClass>
{
// implementation here
}
Run Code Online (Sandbox Code Playgroud)
我试图在集合上使用.FindIndex但没有成功:
int index = collectionInstance.FindIndex(someLambdaExpression);
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以实现吗?
我有一个模型如下:
public class TestResultModel
{
public bool Successful { get; set; }
public string ErrorMessage { get; set; }
}
public class TestResultListModel : List<TestResultModel>
{
public int TotalTestCases { get { return base.Count; } }
public int TotalSuccessful { get { return base.FindAll(t => t.Successful).Count; } }
}
Run Code Online (Sandbox Code Playgroud)
我TestResultListModel从以下地址返回ApiController:
var testResultListModel = new TestResultListModel();
foreach (var testCaseId in new int[] {1,2,3,4})
{
var testResultModel = new TestResultModel
{
Successful = true,
ErrorMessage = "STRING"
}; …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么不继承IList?我在这里看到很多输入,如果我需要为我的对象而不是IList提供自定义集合类,那么最好从Collection继承.这是为什么?为什么人们说不是从IList继承?如果可能请举个例子.
我认为它可能是这样的,所以为什么不使用它作为List提供更多功能:
class FootballTeam : List<FootballPlayer>
{
}
Run Code Online (Sandbox Code Playgroud) 如果我实例化我的子类List<string>,那么我可以使用Linq的Select方法.
using System.Linq;
namespace LinqProblem
{
class Program
{
static void Main(string[] args)
{
BetterList list = new BetterList();
list.Select(l => l.ToString() == "abc"); // no compile error
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在子类的定义中使用Select ...
using System.Collections.Generic;
using System.Linq;
namespace LinqProblem
{
class BetterList : List<string>
{
public List<string> Stuff
{
get
{
base.Select(l => l.ToString() == "abc"); // compile error
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
'
List<string>'不包含'Select'的定义.
为什么会出现这种情况,是否有解决方法?
我试图将一堆XML文件解析为一个已经正常工作的JSON文件.
最终的JSON文件如下所示:
{
"items": [
{
"subItems": [
{
"Name": "Name",
"Value": "Value",
"Type": "text"
},
{
"Name": "Name",
"Value": "Value",
"Type": "text"
}
]
},
{
"subItems": [
{
"Name": "Name",
"Value": "Value",
"Type": "text"
},
{
"Name": "Name",
"Value": "Value",
"Type": "text"
},
...
Run Code Online (Sandbox Code Playgroud)
相反,我想实现以下结构:
{
"items": [
[
{
"Name": "Name",
"Value": "Value",
"Type": "text"
},
{
"Name": "Name",
"Value": "Value",
"Type": "text"
}
],
[
{
"Name": "Name",
"Value": "Value",
"Type": "text"
},
{
"Name": "Name", …Run Code Online (Sandbox Code Playgroud) 这似乎是一项微不足道的任务,但我找不到怎么做(而且不知道该怎么称呼它).
例.我需要的state是实际上只是字符串列表的类.它必须如此工作:
state s = new state();
s.Add("John Madden");
//s[0] == "John Madden"
Run Code Online (Sandbox Code Playgroud)
我需要向这个类添加一些方法.
我想要我的蛋糕并吃掉它.
当你超越数组的初始容量时,我喜欢C#中Lists的动态扩展方式.但这还不够.我希望能够做到这样的事情:
int[] n = new int[]; // Note how I'm NOT defining how big the array is.
n[5] = 9
Run Code Online (Sandbox Code Playgroud)
是的,速度会有一些牺牲,因为在幕后,.NET需要检查是否已超出默认容量.如果有,则可以将阵列扩展5倍左右.
遗憾的是,对于Lists,你并不是真的想要设置一个任意元素,虽然你可以这样做,但是如果没有初步设置List的大小,仍然无法直接设置say,第五个元素,更不用说让它在尝试时动态扩展.
对于任何解决方案,我希望能够保持简单的方括号语法(而不是使用相对详细的方法调用),并且当它不扩展时,它具有相对快速(最好与标准数组一样快)阵列.
我正在尝试创建一个自定义列表子类,它继承列表类的所有方面,除了它的append方法在每次添加新对象时对列表进行排序.
到目前为止,我有这样的事情:
class CommentList(list):
def append(self, other):
return self.data_list.append(other)
Run Code Online (Sandbox Code Playgroud)
我不确定如何为此引入排序功能以及如何改进上述方法.
为什么容器类在System.Collections.Immutable中,即ImmutableList<T>密封?
我想继承它们,并且必须经历一个丑陋且容易出错的组合+代理..
试着理解这里的原因?
我有一个应用程序,其中包含数据库中提到的一些日期时区格式,例如“欧洲/罗马”、“欧洲/柏林”,有没有办法找出 TimezoneId 使用这种时区格式?
例如在我的代码中我想要MyUser别名Dictionary<string,string>
我试过
Type MyUser =typeof(Dictionnary<string,string>);
MyUser user;
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
感谢您的关注。
我有 Point2D 类作为基类,用于存储我通常使用的点列表,List<Point2D>但现在我想添加其他方法和很少的属性来List<Point2D>喜欢 ToString 打印方法,根据特定坐标排序,过滤点的特定方法,我不不想使用扩展方法。
我创建了一个Point2DList继承List<Point2D>类的新类,该类可以正常使用,但是当使用 FindAll 函数时,它现在返回List<Point2D>但我希望它返回Point2DList。我知道我可以编写自己的方法来接受谓词委托,但这工作量太大了。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleAppTest
{
internal static class Program
{
private static void Main()
{
try
{
var points = new Point2DList();
points.Add(new Point2D(0, 0));
points.Add(new Point2D(10, 0));
points.Add(new Point2D(10, 10));
points.Add(new Point2D(0, 10));
Console.WriteLine(points.ToString());
Point2DList newPoints = points.FindAll((x) => x.X == 10);
}
catch (Exception)
{
throw;
}
finally
{
Console.ReadLine();
} …Run Code Online (Sandbox Code Playgroud) 我有一类名为与动物,与名称,类型,性别,和我有,我需要AnimalList另一个名为类知道如何我可以添加动物我AnimalList,这是我的类动物(在控制台应用程序IM):文件名Animal.cs
class Animal
{
public string Name {get; set;}
public string Type {get; set;}
public string Gender {get; set;}
public Person(string name, string type, string gender)
{
Name = name;
Type = type;
Gender = gender;
}
}
Run Code Online (Sandbox Code Playgroud)
我的类AnimalList:FilenameAnimalList.cs
class AnimalList: List<Animal>
{
what should i do to add Animals to this list
}
Run Code Online (Sandbox Code Playgroud)
不应该这样更好吗?
public new void Add(Animal value)
{
}
Run Code Online (Sandbox Code Playgroud)