我想另一种表达方式的方法是"是否有类似List<>C#的类,但是为了检查特定值是否存在而进行了优化?" 我确信一小部分值List<>.Contains可能会很好,但是如果我有一组数千或数百万的值并且想知道某个值是否在其中呢?
我过去通过创建一个Dictionary<object, int>并为每个键设置值为0来实现这种事情,但这感觉非常笨重.而现在有Stack Overflow,我的愚蠢问题可以转化为成千上万的教育(甚至几十年).所以在这里!
我甚至不确定这样一个类会被调用,除了可能Set,所以显然搜索主题已经...挑战:)
作为一个类似于这个问题的问题,我还有一个带有DataGridView的应用程序.我想定位行,使特定行位于列表可见部分的底部.
这是响应按钮单击将行向下移动一行.我想保持我正在移动的行上的选择(我已经有了这个部分工作).如果有很多行,则所选行可能会移动到可见区域下方.我想向下滚动,直到它位于可见区域的底部.
FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣.
有任何想法吗?谢谢.
我有一个非常标准的Django测试用例设置(我认为)
api-name
manage.py
api-name
__init__.py
settings.py
wsgi.py
v0
project
stuff.py
tests
test_stuff.py
Run Code Online (Sandbox Code Playgroud)
manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api-name.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Run Code Online (Sandbox Code Playgroud)
wsgi.py
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api-name.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
test_stuff.py
from django.test import TestCase
from v0.project.stuff import *
class ProjectTestCase(TestCase):
def setUp(self):
# set stuff up
def test_project_stuff(self):
# test stuff
def test_other_stuff(self):
# test stuff
Run Code Online (Sandbox Code Playgroud)
这是我执行测试时会发生的事情:
[cwilbur api-name]$ ./manage.py test
Creating test database …Run Code Online (Sandbox Code Playgroud) 我有一个枚举代表系统中的所有材料汇编代码:
public enum EAssemblyUnit
{
[Description("UCAL1")]
eUCAL1,
[Description("UCAL1-3CP")]
eUCAL13CP,
[Description("UCAL40-3CP")]
eUCAL403CP, // ...
}
Run Code Online (Sandbox Code Playgroud)
在系统另一部分的遗留代码中,我的对象标记了与枚举描述匹配的字符串.鉴于其中一个字符串,获得枚举值的最简洁方法是什么?我想象的是:
public EAssemblyUnit FromDescription(string AU)
{
EAssemblyUnit eAU = <value we find with description matching AU>
return eAU;
}
Run Code Online (Sandbox Code Playgroud) 所以,a System.Windows.Forms.Control具有Controls类型的属性Control.ControlCollection.我在一个表单上有一个控件,在这个集合中有一堆小的子控件.这些子控件具有标签和文本标识符,它是数据库中的字段名称.
我需要能够回到Controls集合中并按名称查找控件.ControlCollection有一个public virtual Control this[string key] { get; }和一个public virtual bool ContainsKey(string key),所以看起来我应该能够查找它们.
但是,Add function(public virtual void Add(Control value))不接受一个键字符串,只是System.Windows.Forms.Control你要添加的,而我所有的调用ContainsKey都返回false.
在Control必须覆盖的东西上必须被覆盖才能成为密钥(因为只有Control传递了),我尝试覆盖ToString()返回数据库字段名称(我想用于查找),但是ContainsKey当我知道一个时仍然返回false控制指定的字段存在.
this[string key] { get; }关键参数的文档是"要从控件集合中检索的控件的名称".在Control不具有Name属性我可以重写,其唯一的名称属性包含类的名称,这将是我加入每个控制相同.ContainsKey(string key)说关键参数的文档是"定位的关键",这甚至没那么有用.
找到了答案,但我已经写了所有这些,所以我不妨发布它然后自我回答,以防其他人可能发现它有用...
我有两个IList<CustomObject>,其中CustomObject有一个Name属性是string.拨打第一个set,第二个subset.set包含我刚刚在多选列表框中向用户显示的内容列表.用户选择的那些已被放入subset(因此subset保证是其中的一个子集set,因此聪明的名称;))
什么是产生第三的最直接的方法IList<CustomObject>,inverseSubset包含所有CustomObjects用户没有选择,这两个集?
我一直在尝试这样的LINQ事情
IEnumerable<CustomObject> inverseSubset = set.Select<CustomObject,CustomObject>(
sp => !subset.ConvertAll<string>(p => p.Name).Contains(sp.Name));
Run Code Online (Sandbox Code Playgroud)
......根据模糊相似问题的答案,但到目前为止,没有任何东西可以编译,更不用说工作了:P
C#将400AMP或6M之类的东西转换成整数的最干净/最好的方法是什么?我不会总是知道后缀是什么,我只是想要它离开并留下我的号码.
我有一个代表物理结构的物体(如电线杆),它接触一堆其他物体(杆子上的电线).其他对象具有表示为枚举的一组特征(状态,大小,电压,相位等).我想编写一个通用函数来计算有多少线匹配任何或所有特征.
如果枚举是一流的对象,我想我只是写这个:
class Wire
{
public EStatus Status { get; set; }
public ESize Size { get; set; }
public EVoltage Voltage { get; set; }
public EPhase Phase { get; set; }
}
int CountWires(EStatus status, ESize size, EVoltage voltage, EPhase phase)
{
int count = 0;
foreach (Wire wire in _connectedWires)
{
if (status != null && wire.Status != status) continue;
if (size != null && wire.Size != size) continue;
//...
++count;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
......并且可以将其称为计算任何电压和相位的新的大电线,如下所示:
CountWires(EStatus.New, …Run Code Online (Sandbox Code Playgroud) c# ×8
datagridview ×2
enums ×2
.net ×1
dictionary ×1
django ×1
ilist ×1
key ×1
list ×1
null ×1
python ×1
string ×1
unit-testing ×1
winforms ×1