相关疑难解决方法(0)

如何在Collection <T>继承类中找到元素索引?

如何在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)

还有其他方法可以实现吗?

c# inheritance generic-collections

3
推荐指数
1
解决办法
2万
查看次数

JSON序列化类继承列表的属性

我有一个模型如下:

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)

c# json json.net asp.net-web-api

3
推荐指数
1
解决办法
1633
查看次数

从List或Collection继承

任何人都可以解释为什么不继承IList?我在这里看到很多输入,如果我需要为我的对象而不是IList提供自定义集合类,那么最好从Collection继承.这是为什么?为什么人们说不是从IList继承?如果可能请举个例子.

我认为它可能是这样的,所以为什么不使用它作为List提供更多功能:

class FootballTeam : List<FootballPlayer> 
{ 
}
Run Code Online (Sandbox Code Playgroud)

c# vb.net

2
推荐指数
1
解决办法
1188
查看次数

为什么我不能使用base.Select在List <string>的子类中使用Linq Select?

如果我实例化我的子类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'的定义.

为什么会出现这种情况,是否有解决方法?

.net c# linq

2
推荐指数
1
解决办法
1007
查看次数

使用C#中的Json.net格式化Json

我试图将一堆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)

c# json jsonserializer json.net json-serialization

2
推荐指数
1
解决办法
63
查看次数

如何使用一些自定义方法创建只有List <string>的类?

这似乎是一项微不足道的任务,但我找不到怎么做(而且不知道该怎么称呼它).

例.我需要的state是实际上只是字符串列表的类.它必须如此工作:

state s = new state();
s.Add("John Madden");
//s[0] == "John Madden"
Run Code Online (Sandbox Code Playgroud)

我需要向这个类添加一些方法.

c# oop

1
推荐指数
1
解决办法
131
查看次数

糖衣阵列(动态调整大小并随意设置任何元素)

我想要我的蛋糕并吃掉它.

当你超越数组的初始容量时,我喜欢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,第五个元素,更不用说让它在尝试时动态扩展.

对于任何解决方案,我希望能够保持简单的方括号语法(而不是使用相对详细的方法调用),并且当它不扩展时,它具有相对快速(最好与标准数组一样快)阵列.

.net c# arrays list syntactic-sugar

1
推荐指数
1
解决办法
168
查看次数

在Python中创建自定义类列表

我正在尝试创建一个自定义列表子类,它继承列表类的所有方面,除了它的append方法在每次添加新对象时对列表进行排序.

到目前为止,我有这样的事情:

class CommentList(list):
    def append(self, other):
         return self.data_list.append(other)
Run Code Online (Sandbox Code Playgroud)

我不确定如何为此引入排序功能以及如何改进上述方法.

python class list

0
推荐指数
1
解决办法
1076
查看次数

System.Collections.Immutable容器,为什么密封?

为什么容器类在System.Collections.Immutable中,即ImmutableList<T>密封?

我想继承它们,并且必须经历一个丑陋且容易出错的组合+代理..

试着理解这里的原因?

.net c# .net-core asp.net-core

0
推荐指数
1
解决办法
313
查看次数

使用“欧洲/德国”等时区查找时区 ID

我有一个应用程序,其中包含数据库中提到的一些日期时区格式,例如“欧洲/罗马”、“欧洲/柏林”,有没有办法找出 TimezoneId 使用这种时区格式?

.net c# timezone

0
推荐指数
1
解决办法
174
查看次数

如何重命名类型/类,或为其指定别名?

例如在我的代码中我想要MyUser别名Dictionary<string,string>

我试过

Type MyUser =typeof(Dictionnary<string,string>);
MyUser user;
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

感谢您的关注。

c#

0
推荐指数
1
解决办法
171
查看次数

c# 无论如何要向 List&lt;Type&gt; 添加其他方法?

问题

我有 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)

c#

-1
推荐指数
1
解决办法
123
查看次数

C#类将ID从一个类添加到另一个类

我有一类名为与动物,与名称,类型,性别,和我有,我需要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)

c#

-5
推荐指数
1
解决办法
106
查看次数