小编Jam*_*iec的帖子

使用javascript轮到数百

我希望用这样的javascript将数字舍入为数百:

10651.89    = 10700
10649.89    = 10600
60355.03    = 60400
951479.29   = 951500
1331360.95  = 1331400
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

非常感谢.

javascript

7
推荐指数
2
解决办法
6318
查看次数

如何在WPF MVVM应用程序中组织接口和实现

我正在研究包含以下项目的WPF MVVM项目,

  • 域,
  • 的ViewModels,
  • 基础设施,
  • 查看

例如我需要IFileService提供一些带文件的操作并且不包含任何业务逻辑,我确信这个接口FileService的实现将在Infrastructure项目中,但我有问题放在哪里IFileService接口

我需要在ViewModels项目中使用这个接口,如果我将它放在这个项目中,它意味着基础设施将在ViewModels上引用我认为不好的,如果我将它放在包含业务相关类的域中.

帮助我组织项目之间的结构和引用以及放置接口的最佳位置是IFileService什么?

c# architecture wpf mvvm

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

Where子句不包含在SQL查询中

我目前正在使用EntityFramework 6.0在C#4.0中创建一个应用程序.

我正在尝试从数据库中检索项目列表,但问题是EF框架生成的SQL查询不包含where子句.

因此,整个表/视图加载到内存中,只需10秒即可获得2或3个项目.

下面是我的GenericRepostitory中的方法:

public IList<TEntity> GetList(Func<TEntity, bool> where, params Expression<Func<TEntity, object>>[] navigationProperties)
{
    using (var dbContextScope = contextScopeFactory.CreateReadOnly())
    {
        IQueryable<TEntity> dbQuery = Context.Set<TEntity>().AsQueryable();

        foreach (Expression<Func<TEntity, object>> navigationProperty in navigationProperties)
            dbQuery = dbQuery.Include<TEntity, object>(navigationProperty);

        var list = dbQuery
            .AsNoTracking()
            .Where(where);

        Context.Database.Log = s => Debug.WriteLine(s);

        return list.ToList<TEntity>();
    }
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

var repository = repositoryFactory.Get<Context, Entity>();
var items = repository.GetList(x => x.FakeID <= 10); 
Run Code Online (Sandbox Code Playgroud)

返回结果很好,但需要大约10秒才能检索到.当调试写入生成的SQL查询时,where子句无处可去

如何修改我的函数GetList以包含where子句?

我希望我对这些信息足够清楚,我很抱歉我的英语.这不是我的母语:/

无论如何,谢谢你的帮助

.net c# sql-server entity-framework-6

7
推荐指数
2
解决办法
603
查看次数

包含来自同一层次结构的2个维度的MDX查询

我的多维数据集中的相关结构是我有一个带有"Class"和"SubClass"的层次结构.我还有一个称为"价值"的措施,这是我试图获得的.

一个简单的查询可能如下所示:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY ([Some Dimension].[Class Hierarchy].[Class]) ON ROWS
FROM [MyCube]
Run Code Online (Sandbox Code Playgroud)

我显然可以使用返回给Adomd的HIerarchy读取SubClass.

我的问题是双重的,首先我将如何"扁平化"这个层次结构,以便在CellSet中接收Class和SubClass作为离散成员?这不起作用:

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   [Some Dimension].[Class Hierarchy].[Class], 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
Run Code Online (Sandbox Code Playgroud)

Class Hierarchy层次结构在Crossjoin函数中多次使用

第二个问题,我真正需要做的是在特定类上过滤上述内容,再次由于与上述相同的原因不能工作.

SELECT
 NON EMPTY ([Measures].[Value]) ON COLUMNS,
 NON EMPTY (
   {[Some Dimension].[Class Hierarchy].[Class].&[ClassA],[Some Dimension].[Class Hierarchy].[Class].&[ClassB]}, 
   [Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.MDX让我疯了!

mdx adomd.net

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

WiX安装程序中的Parameterise服务启动选项

我在WiX安装程序中有一个ServiceInstall组件,我要求根据传入MSI的参数启动auto或demand.

所以问题的Xml元素是

<ServiceInstall Vital="yes"
     Name="My Windows Service"
     Type="ownProcess"
     Account="[SERVICEUSERDOMAIN]\[SERVICEUSERNAME]"
     DisplayName="My Service"
     Password="[SERVICEUSERPASSWORD]"
     Start="demand"
     Interactive="no"
     Description="Something interesting here"
     Id="Service"
     ErrorControl="ignore"></ServiceInstall>
Run Code Online (Sandbox Code Playgroud)

WiX将不允许使用参数作为Start属性,因此我坚持完全使用条件来补充组件,例如/

<Component Id="ServiceDemand"
                 Guid="{E204A71D-B0EB-4af0-96DB-9823605050C7}" >
        <Condition>SERVICESTART="demand"</Condition>    
...
Run Code Online (Sandbox Code Playgroud)

并完全复制整个组件,具有不同的Start设置和不同的Condition.

谁知道更优雅的解决方案?一个我不知道的地方;除了开始的属性之外,我必须保持两个完全相同的组件吗?

.net windows-services wix serviceinstall

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

找到要舍入的集合中的最大数字,然后将其四舍五入

正如标题所描述的那样,我有一组对象 - 称为Allocations - 包含描述和数字.集合中的所有数字加起来都是100%,但出于显示目的,我有时会达到整数百分比.在某些边缘情况下,对数字进行舍入后,最终得出99%.

例:

Description  | Actual | Rounded
===============================
Allocation A | 65.23% | 65% 
Allocation B | 25.40% | 25%
Allocation C | 7.95%  | 8%
Allocation D | 1.42%  | 1%
===============================
Total        | 100%   | 99% (Bad!)
Run Code Online (Sandbox Code Playgroud)

所要求的解决方案虽然不完善但会做到,但要找到最高的解决方案,然后将其四舍五入.在上面的示例中,四舍五入时1.42%将变为2%.编辑:通过"最高的一个向下舍入"我的意思是最圆的一个.因此1.42%下调0.42而65.23仅下跌0.23

所以现在代码,我有一个类

public class Allocation
{
  public string Description {get;set;}
  public doubel Percentage {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这些都是在一个IEnumerable<Allocation>.因此,可能使用LINQ,我如何确定哪一个是圆形的.或者更具体地说,如何生成IEnumerable<Allocation>带有舍入数字的新数据.

如果有人有任何其他建议,总是将圆整百分比总是等于100%甚至会更好!

linq ienumerable rounding c#-3.0

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

如何从group by生成html字符串

在这里,我有一个我的班级Assinantes的名单

new Assinante
            {
                City= "BAURU",
                Num= 112,
                ClientCode= 3123,
                Phone= "1412345675"
            },
            new Assinante
            {
                City= "BAURU",
                Num= 45,
                ClientCode= 3123,
                Phone= "214464347"
            }
Run Code Online (Sandbox Code Playgroud)

我需要按城市,ClientCod和Num进行分组,我已经在这里完成了:

var listGroup= (from a in lista
            group a by new {a.City, a.ClientCode, a.Num});
Run Code Online (Sandbox Code Playgroud)

然后,我需要使用Linq生成一个html字符串,如下例所示:

<div>
   <h2>Bauru</h2>
   <ul>
        <li>3123</li>
        <ul>
            <li>112</li>
            <ul>
                <li>1412345675</li>
            </ul>
            <li>45</li>
            <ul>
                <li>214464347</li>
            </ul>
        </ul>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

有人可以给我任何消化吗?

c# linq

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

分配给{} .toString意味着什么?

我正在学习JavaScript,我遇到了这个片段,它演示了类型检测:

var toClass = {}.toString // Copy a reference to toString for objects into toClass variable

alert( toClass.call( [1,2] ) ) // [object Array]
alert( toClass.call( new Date ) ) // [object Date]
Run Code Online (Sandbox Code Playgroud)

我不明白第一行中的空花括号是什么,所以我将它们删除如下:

var toClass = toString
Run Code Online (Sandbox Code Playgroud)

代码仍然有效.但是在下面的代码中,

function getAge () {
    alert(this.age);
}

var p1 = {
    age:1
};

var tellAge=getAge;
tellAge.call(p1); //1
Run Code Online (Sandbox Code Playgroud)

如果我var tellAge=getAge改为var tellAge={}.getAge,我得到一个错误:无法读取未定义的属性"调用".为什么是这样?是因为toString是内置功能吗?

javascript function tostring

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

随机渐变背景色

我试图在每个部分获得随机渐变背景(4 种颜色之间)。这是我的代码:

let colors = ["#ffd0d2","#fffdd0","#d0fffd","#d0d2ff"];
    $(".main").children('section').each(function(){   
        let firstGradient = randomNumber(10,90);
        $(this).css(
            "background", "linear-gradient(141deg, "+colors[randomNumber(0,4)]+" "+firstGradient+"%, "+colors[randomNumber(0,4)]+" "+(100-firstGradient)+"%)"
        );
    });
    function randomNumber(min,max){
        return Math.floor((Math.random() * max) + min);
    }
Run Code Online (Sandbox Code Playgroud)
section{
  display:block;
  height:400px;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
  <section></section>
  <section></section>
  <section></section>
</div>
Run Code Online (Sandbox Code Playgroud)

它是如此的随机。有时我会得到这样的结果: 在此处输入图片说明

当结果应该是这样的:

在此处输入图片说明

javascript css linear-gradients background-color

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

并行长期运行任务的时间优化

介绍

我正在使用一个复杂的外部库,我试图在一大堆项目上执行它的功能.该库没有公开一个好的异步接口,所以我坚持使用一些非常老式的代码.

我的目标是优化完成一批处理所需的时间,并演示问题而不必包含我在下面创建的实际第三方库的近似问题

问题

给定非异步操作,您可以提前知道操作的"大小"(即复杂性):

public interface IAction
{
    int Size { get; }
    void Execute();
}
Run Code Online (Sandbox Code Playgroud)

鉴于此动作有3种变体:

public class LongAction : IAction
{
    public int Size => 10000;
    public void Execute()
    {
        Thread.Sleep(10000);
    }
}

public class MediumAction : IAction
{

    public int Size => 1000;
    public void Execute()
    {
        Thread.Sleep(1000);
    }
}

public class ShortAction : IAction
{
    public int Size => 100;
    public void Execute()
    {
        Thread.Sleep(100);
    }
}
Run Code Online (Sandbox Code Playgroud)

您如何优化这些操作的长列表,以便在以某种并行方式运行时,整个批处理尽可能快地完成?

天真的,你可以把整个批次扔到一个Parallel.ForEach,并且具有相当高的并行性并且肯定有效 - 但是必须有一种方法来优化它们,所以一些最大的首先开始.

为了进一步说明问题,如果我们采取一个超简化的例子

  • 1个大小为10的任务 …

c# parallel-processing

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