将关键对象的映射存储到值对象集合的最佳方法是什么?
我可以用
Dictionary<KeyType, Collection<ValueType>>
Run Code Online (Sandbox Code Playgroud)
但这种方法往往涉及大量的内务管理,并使代码混乱.
Lookup类型几乎是我正在寻找的结果,但它是不可变的,没有构造函数.我可以创建自己的自定义类,但它似乎应该存在于某个框架中.
我正在尝试编写一个包含数字生物的模型.在该模型中,我将环境置于固定的二维阵列中,但每个细胞需要包含其中的生物列表.我尝试使用锯齿状数组,但由于整个程序运行中占用元素的数量变化很大,我需要使用比数组更灵活的东西.我已经尝试制作类型列表的二维数组,但我得到它的错误.
List<Creature>[,] theWorld;
public Environment()
{
List<Creature>[,] theWorld = new List<Creature>[100,100];
}
public void addCreature(Creature c)
{
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
theWorld[x, y].Add (c);
} } }
Run Code Online (Sandbox Code Playgroud)
这是我试图在开始时声明数组的片段,作为保存(生物体)列表的类型,稍后我尝试将生物(c)添加到每个元素中的每个元素中.阵列.
当我运行它时,我得到以下错误信息 -
"HGT_sim_2.exe中发生了'System.NullReferenceException'类型的未处理异常
附加信息:对象引用未设置为对象的实例."
和"World [x,y] .Add(c);" 突出显示.
如果有人能告诉我我做错了什么,甚至更好,一个解决问题的办法,那就太棒了.谢谢你提前!
我们在CVSDude的帐户本周已迁移.在没有能够访问我们的仓库的一周的后果之后,它被备份了稍微不同的URL(' - '基本上改为'.').我们使用TortoiseSVN的relocate命令切换工作副本,它已经工作了一天非常顺利.
但今天,我开始在执行更新时获得标题中的错误.我删除了有问题的文件夹,因为它很小,并再次更新.该文件夹在我的工作副本中重新创建,但另一个文件夹开始提供相同的错误.
我用Google搜索了,这是两个常见的答案:
我们根本没有改变任何文件夹 - 开始抱怨的第一个文件夹没有被触及 - 我还仔细检查了.svn的东西.团队中的其他人没有报告同样的问题,他们也使用Windows + TortoiseSVN.
想法/灵感吗?
我目前有一个表(/网格)的数据,我可以页面,筛选和排序.在桌子上我也有一个内置的复选框列.现在,分页,过滤和排序都发生在SQL查询中.我希望能够做的是按复选框列中单击的项目排序.这会将所有检查的项目带到表格的前面.由于复选框本身都是客户端,我不能告诉SQL查询按不存在的列排序(可能我需要动态创建一个?)
本质上我认为会发生的是,复选框ID值将被发送到查询中,SQL查询本身会以某种方式知道按先排序,然后由指定的其他查询排序.
有点像,点击1,2和3:
SELECT*FROM Blah ORDER BY(SELECT ID FROM Blah WHERE ID IN(1,2,3)),AnotherColumnToSort
无论如何,这是计划,任何人都有任何关于如何实现这一目标的想法?
更新:Smack我在Oracle数据库而不是SQL Server,就像我想象的那样.
AVAudioRecorder的peakPowerForChannel和averagePowerForChannel方法有什么区别?
为什么返回的值是负数?不是没有声音它应该是0,当声音的幅度上升时它会上升吗?如何转换为更"可读"的格式?
谢谢.
有人告诉我他见过软件系统:
那可能吗?我认为解密MD5哈希是不可能/不可行的.
我知道有MD5词典,但是有没有实际的解密算法?
我正在创建可以作为GUI运行的ac#winforms项目,或者可以从命令行进行操作.目前,我可以处理命令行输入和参数.我可以从命令行运行程序,我可以使用该程序来处理参数.但Console.Writeline()绝对没有任何作用.任何线索为什么会这样?
考虑以下人为的例子:
void HandleThat() { ... }
void HandleThis()
{
if (That) return HandleThat();
...
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作得很好,我很确定它是规范有效的,但我(也许是我自己)考虑这种不寻常的风格,因为调用似乎返回函数的结果,尽管这两个函数都是原型的无效.
通常,我希望看到:
if (That) {HandleThat(); return;}
Run Code Online (Sandbox Code Playgroud)
我觉得,对于发生的事情没有任何含糊之处.
SO社区,我可以看看返回 - 无效编码风格是否令人困惑或有问题?它有成语的感觉; 我应该使用它还是避免使用它?
一般来说,我会努力澄清并使用第二种风格.另一方面,第一种形式的整洁性让我对它有所了解.
自2007年预览1(12月)以来,我一直在研究,使用和使用ASP.NET MVC.自2008年以来,我一直是它的粉丝,我一直支持它.
然而,我一直听到并阅读"ASP.NET MVC强制严格分离关注点",包括由Rob Conery,Scott Hanselman,Phil Haack和Scott Guthrie在Professional ASP.NET MVC 1.0中阅读.
我不明白的是执法.如果我用除了之外的动作定义我的控制器怎么办?
return View();
Run Code Online (Sandbox Code Playgroud)
在视图(aspx视图引擎)中我做的一切?(数据获取,业务逻辑,决策制定,渲染等)
它是如何(ASP.NET MVC)ENFORCE我分开的关注?
我认为这是一种公然的夸大其词,应该是"建议分离关注点".
你能说服我强制执行吗?
我想在我们的电子邮件简报中自定义"取消订阅"链接,以便他们只需点击一下即可删除收件人.现在他们只是指向一个通用页面,用户必须输入他们的电子邮件地址并选择他们想要取消订阅的新闻通讯.
看起来这应该非常简单,即只包括电子邮件地址和简报ID作为url参数.但是,当我查看我订阅的列表中的示例时,许多都不包含可识别的地址,并且大多数似乎在参数中使用类似guids和/或散列值的内容.从那以后,我猜测我应该散列或以其他方式编码一些信息,以防止恶意滥用取消订阅表单.
所以我的问题是关于最佳实践,而不是重新发明轮子.有没有一种标准的方法来处理这种功能?更具体地说,是否有理由不将收件人的电子邮件地址作为网址的一部分?这看起来很简单,让我觉得我忽略了什么.
c# ×3
arrays ×1
asp.net-mvc ×1
c++ ×1
cocoa-touch ×1
coding-style ×1
command-line ×1
console ×1
cryptography ×1
email ×1
encryption ×1
hash ×1
idioms ×1
iphone ×1
list ×1
md5 ×1
oracle ×1
plsql ×1
sql ×1
svn ×1
types ×1
usability ×1
view ×1