小编Yes*_*ke.的帖子

你如何规范一对一或其他关系?

我正在存储有关棒球统计数据的数据,并希望使用三个表格来执行此操作:player,battingStats和pitchingStats.出于问题的目的,每个玩家将有击球统计数据或投球统计数据,但不是两者都有.

我如何在3NF中规范这种关系?

normalization 3nf third-normal-form database-normalization

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

将ExpandoObject持久保存到MongoDB

我有一个具有任意数量属性的ExpandoObject.我想将这些属性作为BsonDocument保存到MongoDB数据库.我尝试使用以下代码执行此操作:

private BsonDocument GetPlayerDocument(IPlayer player)
{
    var ret = new BsonDocument();

    ret.Add("FirstName", player.FirstName).
        Add("LastName", player.LastName).
        Add("Team", player.Team).
        Add("Positions", new BsonArray(player.Positions));

    foreach (var stat in (IDictionary<String, Object>)player.Stats)
    {
        ret.Add(stat.Key, stat.Value.ToBson());
    }

    return ret;
}
Run Code Online (Sandbox Code Playgroud)

但是,在对象上调用扩展方法ToBson()时,我收到以下异常:当State为:Initial时,不能调用WriteInt32.

我所知道的唯一的WrtieInt32是Marshall类的静态方法.我接近这个错吗?

c# mongodb expandoobject mongodb-.net-driver

5
推荐指数
2
解决办法
2736
查看次数

将泛型类型参数约束为数值类型

我正在定义一个泛型类型:

public class Point<T> where T : IConvertible, IComparable
Run Code Online (Sandbox Code Playgroud)

我真正想做的是将T限制为数字类型(int或浮点之一.)CLR中没有INumeric.是否有接口或接口集合可用于将类型约束为其中一个盒装数字类?

c# generics

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

天真洗牌的现实问题

我正在撰写一些文章,旨在通过使用与扑克相关的主题来教授开始编程概念.目前,我正在研究洗牌问题.

正如Jeff Atwood在CodingHorror.com上指出的那样,一个简单的改组方法(迭代数组并用阵列中其他地方的随机卡交换每个卡)会产生不均匀的排列分布.在实际应用中,我会使用Knuth Fisher-Yates shuffle来获得更均匀的随机性.但是,我不想用更少编码器友好的算法来解释编程概念.

这就产生了一个问题:如果黑帽子知道你正在使用52张牌的天真洗牌,那么黑帽子有多大的优势呢?看起来它会无限小.

algorithm shuffle probability

4
推荐指数
2
解决办法
3609
查看次数

SharpZipLib的基础知识.我错过了什么?

我的代码中有以下方法:

private bool GenerateZipFile(List<FileInfo> filesToArchive, DateTime archiveDate)
{
    try
    {
        using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(GetZipFileName(archiveDate))))
        {
            zipStream.SetLevel(9); // maximum compression.
            byte[] buffer = new byte[4096];

            foreach (FileInfo fi in filesToArchive)
            {
                string fileName = ZipEntry.CleanName(fi.Name);
                ZipEntry entry = new ZipEntry(fileName);
                entry.DateTime = fi.LastWriteTime;
                zipStream.PutNextEntry(entry);

                using (FileStream fs = File.OpenRead(fi.FullName))
                {
                    StreamUtils.Copy(fs, zipStream, buffer);
                }

                zipStream.CloseEntry();
            }

            zipStream.Finish();
            zipStream.Close();
        }
        return true; 
    }
    catch (Exception ex)
    {
        OutputMessage(ex.ToString());
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码生成包含所有正确条目的ZIP文件,但每个文件都列为4 TB(解压缩和打包),并在尝试打开时创建以下错误:

Extracting to "C:\winnt\profiles\jbladt\LOCALS~1\Temp\"
Use Path: no …
Run Code Online (Sandbox Code Playgroud)

.net c# compression sharpziplib .net-2.0

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

从类/接口检查继承的正确方法是什么?

下面的代码循环遍历字符串字典和IMyCompanySettings,寻找实现IMyCompanyProductSetting的值.显然,尝试强制转换异常是一种非常昂贵的方法.

    public static List<IMyCompanyProductSetting> GetProductSettings(ConfigurationManager cfm)
    {
        List<IMyCompanyProductSetting> ret = new List<IMyCompanyProductSetting>();
        foreach(IMyCompanySetting setting in cfm.Values)
        {
            try
            {
                IMyCompanyProductSetting prod = (IMyCompanyProductSetting)setting;
                ret.Add(prod);

            }
            catch
            {
              // Do nothing.
            }
        }
        return ret;
    }
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法呢?

.net c# reflection inheritance

4
推荐指数
2
解决办法
3848
查看次数

ASP.net MVC 3项目文件没有出现在新项目对话框中?

昨天我使用基于Web的安装程序在我的开发机器上安装了ASP.net MVC 3,进行了干净重启等.

MVC 3项目仍然没有出现在我的New Project对话框中,只出现在MVC 2项目中.我错过了一步吗?

asp.net-mvc visual-studio-2010 asp.net-mvc-3

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

从名称中实例化泛型的最佳方法是什么?

假设我只有一个泛型的类名作为"MyCustomGenericCollection(MyCustomObjectClass)"形式的字符串,并且不知道它来自哪个汇编,那么创建该对象实例的最简单方法是什么?

如果它有帮助,我知道该类实现了IMyCustomInterface并且来自加载到当前AppDomain的程序集.

Markus Olsson 在这里给出了一个很好的例子,但我不知道如何将它应用于泛型.

.net vb.net generics reflection .net-2.0

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

如何确定数组中已定义元素的数量?

如果我在Javascript中有一个偶尔填充的数组,我该如何确定数组中非空元素的数量?

例如:

var zipCodes = [];
zipCodes[10006] = 'New York, NY';
zipCodes[90210] = 'Los Angeles, CA';
Run Code Online (Sandbox Code Playgroud)

zipCodes.length在这里返回90,211,我真的不想循环通过90,209个nothings来找出我有两个有效元素.使用for-in循环意味着处理任何可能冒泡原型链并试图弄清楚它是否是数组的一部分.

有没有办法,鉴于上面定义的数组,我可以提取"2"作为已定义元素的数量?

javascript

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

如何将PIL与Tkinter一起使用?

在使用PIL加载图像并将其显示在由Tkinter创建的窗口中时,我在一个非常基本的层面上遗漏了一些东西.我想要做的最简单的形式是:

import Tkinter as TK
from PIL import Image, ImageTk

im = Image.open("C:\\tinycat.jpg")
tkIm = ImageTk.PhotoImage(im)
tkIm.pack()
TK.mainloop()
Run Code Online (Sandbox Code Playgroud)

当我尝试运行上面的代码时,我得到以下内容:

RuntimeError: Too early to create image
Exception AttributeError: "PhotoImage instance has no attribute 
'_PhotoImage__photo'" in <bound method PhotoImage.__del__ of 
<PIL.ImageTk.PhotoImage instance at 0x00C00030>> ignored
Run Code Online (Sandbox Code Playgroud)

我已经确认文件存在,可以在图像编辑器中打开,也可以使用im.show()显示.我错过了什么?

python tkinter python-imaging-library

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