小编Jac*_*cik的帖子

枚举项映射到另一个值

我有枚举:

enum MyEnum{
    aaaVal1,
    aaaVal2,
    aaaVal3,
}  
Run Code Online (Sandbox Code Playgroud)

我需要有'MyEnum'的缩写版本,它将"MyEnum"中的每个项目映射到不同的值.我目前的方法是简单翻译每个项目的方法:

string translate(MyEnum myEnum)
{
    string result = "";
    switch ((int)myEnum)
    {
        0:   result = "abc";
        1:   result = "dft";
        default: result = "fsdfds"
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是每次程序员改变MyEnum时他都应该改变翻译方法.

这不是一种好的编程方式.

所以..

这个问题还有更优雅的解决方案吗?

谢谢 :-)

c#

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

GetRuntimeProperties而不是GetProperty

我需要在泛型类型中找到属性.这是一种古老的方式(因为我的代码专用于WinRT,我相信我需要另一种方法):

PropertyInfo pi = typeof(TRp).GenericTypeArguments[0].GetProperty(idField, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);  
Run Code Online (Sandbox Code Playgroud)

我需要使用相同的结果GetRuntimeProperties.这是我的方法:

PropertyInfo pi = typeof(TRp).GenericTypeArguments[0].GetRuntimeProperties().Single(p => p.Name.ToUpper() == idField.ToUpper()...  
Run Code Online (Sandbox Code Playgroud)

你可以看到我IgnoreCase以自定义方式实现,可能它可以做得更好?
我该如何实施剩余的BindingFlags

谢谢!

c# reflection

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

MongoDB,find()结果,转换为json

email: {"email":"aaa@bbb.eu"}
{ _mongooseOptions: {},
  mongooseCollection:
   { collection:
      { db: [Object],
        collectionName: 'parties',
        internalHint: null,
        opts: {},
        slaveOk: false,
        serializeFunctions: false,
        raw: false,
        pkFactory: [Object],
        serverCapabilities: undefined },
     opts: { bufferCommands: true, capped: false },
     name: 'parties',
     conn:
      { base: [Object],
        collections: [Object],
        models: [Object],
        replica: false,
        hosts: null,
        host: 'localhost',
        port: 27017,
        user: undefined,
        pass: undefined,
        name: 'pluserDB',
        options: [Object],
        otherDbs: [],
        _readyState: 1,
        _closeCalled: false,
        _hasOpened: true,
        _listening: true,
        _events: {},
        db: [Object] },
     queue: [],
     buffer: false …
Run Code Online (Sandbox Code Playgroud)

json mongodb

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

在AngularJS中的ngRepeat集合中延迟加载项

如何处理ng-repeatAngularJS中的大量集合?

一旦用户决定切换到另一个控制器,我正在考虑取消下载过程.

要显示我使用的图像:

<ul class="thumbnails">
    <li ng-repeat="photo in photosFound.data track by $index" >
        <a prettyp class="thumbnail" ng-href="{{domain}}/{{photo.thumb}}" rel="prettyPhoto[main]">
            <img class="group1" ng-src="{{domain}}/{{photo.image}}" />
        </a>
    </li>
</ul>  
Run Code Online (Sandbox Code Playgroud)

一旦用户决定更换他们所在的控制器,有没有办法取消所有150张图像的下载?

javascript angularjs cordova

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

基于某些条件的两个字段的总和

这些是我Stat收集的文件:

{placeid: 'plaza', guestid: "xxx", logtype: "purchase", value: 12}
{placeid: 'plaza', guestid: "xxx", logtype: "visit", value: 0}
{placeid: 'plaza', guestid: "xxx", logtype: "purchase", value: 17}
{placeid: 'plaza', guestid: "yyy", logtype: "visit", value: 0}  
Run Code Online (Sandbox Code Playgroud)

我想聚合这些文档来获取信息(plaza作为参数传递):

  • xxx 访问量:1,购买:2,购买价值为29
  • yyy 访问量:1,购买:0,购买价值为0

这是我的方法:

Stat.aggregate(
        [
            { $match: { placeid: "plaza" } },
            {
                $group: {
                    _id: "$guestid",
                    totallogs: { $sum: 1 },
                    totalvalue: { $sum: "$value" },
                }
            }
        ]
)  
Run Code Online (Sandbox Code Playgroud)

这里的问题是这个聚合没有考虑logtype到.

我不知道如何改进它.有帮助吗?

mongodb mongodb-query aggregation-framework

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

DataGrid中按钮的可见性

我有一个包含三列的DataGrid.

第三列中有一个删除按钮.它的可见性取决于名为'ControlsEnabled'的布尔属性.

DataGrid由"ObservableCollection"中的项填充.

问题是'ControlsEnabled'不是'ObservableCollection'中项目的属性,它不应该是.'ObservableCollection'是另一个类的属性.

问题:我应该如何更改我的XAML描述以解决我的问题?

<DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Path=field1}" 
                        Width="140" 
                        Header="head1"/>
    <DataGridTextColumn Binding="{Binding Path=field2}" 
                        Width="140" 
                        MinWidth="50" 
                        Header="head2"/>

    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button Padding="5" 
                        Click="DeleteButton_Click" 
                        Tag="{Binding}" 
                        Content="X" 
                        Visibility="{Binding Path=ControlsEnabled, Converter={StaticResource boolToVisibilityConverter}}">
                    <Button.ToolTip>
                        <TextBlock>
                            Delete
                        </TextBlock>
                    </Button.ToolTip>
                </Button>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# wpf

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

'union select -1)是什么意思?

我正在阅读一些SQL Server存储过程.请看一下这个:

select top 1 t.Id
from (
    select SomeField1 as Id
    from dbo.SomeTable
    where SomeField2 = @someVariable
    union select -1 as Id
) t
Run Code Online (Sandbox Code Playgroud)

这就是我理解的方式:

  1. 返回查询返回的第一个项目

  2. 字段SomeField1将具有别名:Id

  3. 我们从名为SomeTable的表中选择,其中SomeField2等于@someVariable

到目前为止,我明白了.

什么'联合选择-1作为Id'呢?

最后一行的含义是什么:

) t
Run Code Online (Sandbox Code Playgroud)

这里?

谢谢!

sql-server

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

边境有一个以上的孩子

)

我有一个边框.

我上面有一个TextBlock:

TextBlock tb = new TextBlock();
myBorder.Child = tb;
Run Code Online (Sandbox Code Playgroud)

它工作正常.

问题是:我也希望在其上显示CheckBox.

问题是边框是一个单独的子元素......

那么......这里有解决方法吗?

谢谢!

c# wpf

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

将一个对象分配给同一个类的另一个对象

请看下面的代码:

class Parent{}

class Child : Parent
{
    public int field 
    {
        get; 
        set;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Child child1 = new Child();
        Child child2 = child1;              //same memory address?

        child1.field = 12;
        child2.field = 14;

        Console.WriteLine(child1.field);    //14, as expected

        child1 = null;
        Console.WriteLine(child2.field);    //expected to crush: 'child1' is null so expected 'child2' to also be null

        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这段代码崩溃,但事实并非如此.

为什么?

.net c# variables scope instance

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

event EventHandler被分配给空委托

我正在阅读一些代码,发现这一行:

public event EventHandler Lock = delegate { }

它有什么作用?
为什么有人会使用这样的代码?

c#

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

`HttpClient` 错误消息

我用来HttpClient从服务器获取响应API

API就像:

/api/图像/{0}

其中{0}是图像的名称。
图像名称只有三个可能的值,例如{"green", "red", "blue"}

我不知道当前存在哪些图像,因此我调用了API所有三个图像:

  • /api/图像/绿色
  • /api/图像/红色
  • /api/图像/蓝色

HttpClient可能会返回许多错误消息,但我想为以下情况做一个特例:

响应状态代码并不表示成功:404(未找到)。

问题:是否可以HttpClient仅使用 来返回(在本例中)错误消息404

c# asp.net-mvc

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

Formik-如何从组件的道具设置输入字段值?

我正在使用Formik我的表格。
输入之一应该由props值填充。
我该怎么做?
这是我的方法:

<input
     type="text"
     id="country"
     readOnly
     value={props.countryCode}
     // {...formik.getFieldProps("country")}
 />    
Run Code Online (Sandbox Code Playgroud)

但它很可能会干扰Formik,这就是它不起作用的原因。
正确的解决方案是什么?

谢谢你!

reactjs formik

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