小编Oll*_*ver的帖子

在子构造函数中使用基础对象(C#)

我有一个类,它有一个字符串('name')和一个特征字典('features').通过在文件中查找名称并从中拉出功能来构建实例.我在代码中的其他地方添加了额外的功能.我想知道的是,是否可以在子构造函数中使用父对象的实例?

例如

public parentClass(string name)
{
    this.name = name
    this.features = ... gets features from file ...
}

public childClass(parentClass parentObject, feature extraFeatureValue)
{
   childObject = parentObject???
   this.features[extraFeature] = extraFeatureValue
}
Run Code Online (Sandbox Code Playgroud)

我假设我应该
a)为具有额外功能的对象创建一个新类,所以我可以告诉哪个
b)使新类成为旧类的子类,因为它只是一些额外的功能,我想要保持方法

谢谢

c#

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

列表与另一个列表的排列的组合

我有两个清单:

object = ['square','circle','triangle']
description = ['red','green']
Run Code Online (Sandbox Code Playgroud)

我想要输出一个词典列表:

{'square': 'red', 'circle': 'red', 'triangle': 'red'}
{'square': 'red', 'circle': 'red', 'triangle': 'green'}
{'square': 'green', 'circle': 'red', 'triangle': 'green'}
Run Code Online (Sandbox Code Playgroud)

等等

所以对象不重复,但描述可能会.每个字典都有原始的对象列表作为其键.

我不确定我想要的算法的名称,所以我找不到正确的算法.(我已经查看了python中两个列表的排列,但是它正在寻求不同的结果.两个列表的排列是同一个问题,但是使用OCAML.)

python algorithm combinations

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

我检查了它的类型后,我可以将泛型传递给非泛型函数吗?

我有一个泛型方法,它采用类型为T的Enumerables.如果T也是一个Enumerable,我需要将它传递给另一个函数.但是,由于该函数只接受Enumerables,而T是通用的,因此不会编译.在我通过之前,我正在检查T是可枚举的 - 但显然不能解决这个问题.

我怎样才能做到这一点?

(显然我可以编写另一个只采用IEnumerable <IEnumerable <T >>的方法,并在相关的地方使用它,但这看起来不够优雅.)

例:

public static bool EnumerablesAreEqual<T>(IEnumerable<T> a, IEnumerable<T> b)
{
    foreach (T x in a)
    {
        if (x is Enumerable && !EnumerableContainsEnumerable(x, b))
            return false;
        if (!b.Contains(x))
            return false;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我看过这篇文章,但我认为这不是同一个问题.

c# generics

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

标签 统计

c# ×2

algorithm ×1

combinations ×1

generics ×1

python ×1