小编mar*_*cob的帖子

写出最大的素数

我正在尝试解决C#中最大的主要编程实践问题.问题很简单,打印出或写入文件号:2 58,885,161 - 1(其中有17,425,170位)

我已经设法使用神奇的GNU多精度算术库通过Emil Stevanof .Net包装器来解决它

var num = BigInt.Power(2, 57885161) - 1;
File.WriteAllText("biggestPrime.txt", num.ToString());
Run Code Online (Sandbox Code Playgroud)

即使所有当前发布的解决方案都使用此库,对我来说也感觉像是作弊.有没有办法在托管代码中解决这个问题?想法?建议?

PS:我已经尝试过使用.Net 4.0 BigInteger,但它永远不会结束计算(我等了5分钟,但与GMP解决方案的50秒相比已经很多了).

c# algorithm primes numbers

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

Visual Studio 2010程序包未正确加载未安装的extesions

在visual studio启动期间,我收到很多关于扩展包加载错误的讨厌对话框.所有未能加载的扩展都是我卸载的扩展.

我检查了本文中提到的所有地方(在VS2010中引导VS包和VSIX扩展)并且没有任何扩展我得到错误.

还有其他地方我可以检查吗?

我会"只是"想看看visual studio在哪里找到这些引用并且将它们全部删除:)

Visual Studio错误 - 包未正确加载


我在Windows注册表中找到了这个文件夹:

HKEY_USERS\S-1-5-21-3990449039-760197492-1239349315-1121\Software\Microsoft\VisualStudio\10.0_Config\Packages
Run Code Online (Sandbox Code Playgroud)

它包含对visual studio尝试加载的扩展的所有引用(主要指向HKEY_USERS\S-1-5-21-3990449039-760197492-1239349315-1121\Software\Microsoft\VisualStudio\10.0_Config\InstalledProducts子文件夹).

我刚刚重命名了我删除的扩展名的文件夹,我不再看到加载错误了.

我确定这可能会导致一些副作用,所以有人知道更好的方法来避免Visual Studio试图加载卸载的扩展吗?

visual-studio-2010

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

SqlCommand最大参数异常为2099参数

我在一个SqlCommand中批处理不同的查询,当我达到2100参数限制时停止查询批处理.如果我的批次有2100或2099个参数,我仍然会得到例外.

即使参数数量小于2100,以下测试代码也会抛出"参数异常太多".

var parametersMax = 2099;

var connection = new SqlConnection(@"Data Source=.;Integrated Security=SSPI;");
connection.Open();

var enumerable = Enumerable.Range(0, parametersMax);

var query = string.Format("SELECT {0}", String.Join(", ", enumerable.Select(s => string.Format("P{0} = @p{0}",s))));

var command = new SqlCommand(query, connection);

foreach(var i in enumerable)
    command.Parameters.Add(string.Format("p{0}",i), i);

// here: command.Parameters.Count is 2099

var reader = command.ExecuteReader(); // throws: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is …
Run Code Online (Sandbox Code Playgroud)

c# ado.net sql-server-2008

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

实体框架是否具有Linq2Sql中的DataContext.GetTable <TEntity>(ObjectContext.CreateQuery <T>?)

我正在寻找DataContext.GetTable<TEntity>实体框架中的等价物.我找到了这个ObjectContext.CreateQuery<T>方法,但它有所不同,DataContext.GetTable<TEntity>因为它需要一个查询字符串才能工作.

有没有办法在不指定查询字符串的情况下使用实体类型为表获取IQueryable对象?

*EDIT: Added code snippet*
这是我实现的与linq2sql一起使用的Repository类的片段.我不能使用, ObjectContext.[TableName]因为它不再是通用的.

public class BaseRepository<TClass> : IDisposable
        where TClass : class
    {
        protected BaseRepository(DataContext database)
        {
            _database = database;
        }
        ...

        public IQueryable<TClass> GetAllEntities()
        {
            IQueryable<TClass> entities = _database.GetTable<TClass>();
            return entities;
        }

        public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
        {  
            IQueryable<TClass> table = _database.GetTable<TClass>();
            return table.Where(condition);    
        }
Run Code Online (Sandbox Code Playgroud)

*EDIT: Added my solution (so far..)*
这就是我正在使用的:

public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{  
    IQueryable<TClass> table = _database.CreateQuery<TClass>(typeof(TClass).Name);
    return table.Where(condition);    
}
Run Code Online (Sandbox Code Playgroud)

只要类名与表名相同,这就可以工作.当我开始为同一个表使用不同的对象时,这将成为我的问题.

我希望我已经清楚了,先谢谢, …

.net c# entity-framework

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

在SQL Server 2014中使用聚簇列存储索引时,具有大量列的表仍然是反模式吗?

阅读有关SQL Server 2014中的聚簇列存储索引的信息,我想知道是否有一个包含大量列的表仍然是一种反模式.目前为了缓解具有大量列的单个表的问题,我使用垂直分区但是具有可用的聚簇列存储索引,这不应该是必需的.这是正确的还是我错过了什么?

示例: 让我们以性能计数器的日志为例,原始数据可能具有以下结构:

?????????????????????????????????????????????????????????????????
?       Time       ? Perf1 ? Perf2 ? ... ? ... ? ... ? Perf1000 ?
?????????????????????????????????????????????????????????????????
? 2013-11-05 00:01 ?     1 ?     5 ?     ?     ?     ?        9 ?
? 2013-11-05 00:01 ?     2 ?     9 ?     ?     ?     ?        9 ?
? 2013-11-05 00:01 ?     3 ?     2 ?     ?     ?     ?        9 ?
? 2013-11-05 00:01 ?     4 ?     3 ?     ?     ?     ?        9 ?
?????????????????????????????????????????????????????????????????

拥有1000列这样的表是邪恶的,因为一行很可能跨越多个页面,因为通常不太可能对所有度量感兴趣,但查询总是会产生IO成本等等.等等..解决这种垂直分区通常会有所帮助,例如,可以按类别(CPU,RAM等)对不同表中的性能计数器进行分区.

相反具有这样的表作为一个聚集列存储索引不应该出现这样的问题,因为数据将被存储列明智的,涉及对每个查询的IO将大约只 …

sql-server sql-server-2014 columnstore

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