小编Jer*_*vel的帖子

对列表进行排序,同时保持一些元素始终位于顶部

我们有一个List<Country>按字母顺序排列的国家/地区列表countryName.

 class Country {
   int id;
   String countryCode;
   String countryName;
 }
Run Code Online (Sandbox Code Playgroud)

Country 是一个实体对象,我们无权访问源(它位于许多应用程序共享的jar文件中).

现在我想修改列表,使国家名称"美国"和"英国"排在第一位,列表的其余部分按字母顺序排列.

最有效的方法是什么?

java sorting collections arraylist

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

将错误堆栈发送到方法

我有这个错误堆栈,我想发送给一个方法:

try {
// Some action
} catch (Exception e){
    e.printStackTrace();
    writeInfoMessage(e.printStackTrace());
}

public void writeInfoMessage(Exception message)
{
    log.info(message);
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我将错误堆栈发送给方法的正确方法是什么?

java

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

从逗号分隔的字符串中的键值对中获取值

我有如下字符串值:

var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}"
Run Code Online (Sandbox Code Playgroud)

我需要像下面这样转换:

var finalResult = "August,2012";
Run Code Online (Sandbox Code Playgroud)

有谁知道怎么做?

c#

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

如果您不想创建类的实例,请在类声明中使用什么关键字?

这是我在最近的技术测试中收到的问题:

如果您不想创建类的实例,则在类声明中使用以下哪些关键字?

  • 空值
  • 空虚
  • 私人的

此外,这在现实世界中的相关性是什么?(即它是否经常使用)(并且没有静态不是一个选项,我希望看到它).

c#

3
推荐指数
2
解决办法
1300
查看次数

List <T> .Add(T)的最佳重载方法匹配有一些无效的参数

我定义了List这样的:

List<Agahii.Ads> ads = new List<Agahii.Ads>();
Run Code Online (Sandbox Code Playgroud)

然后我想用LINQ查询的结果填充它:

for (int i = 0; i < adid.Count(); i ++ )
{
      var dd = adid[i];
      var cc = (from a in context.Ads where a.AdID == dd select a).ToList();

      ads.Add(cc);     // error appears here
};
Run Code Online (Sandbox Code Playgroud)

错误出现在该ads.Add(cc);行中.

错误:System.Collections.Generic.List.Add(Agahii.Ads)的最佳重载方法匹配有一些无效的参数

c# linq

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

如何使用剃刀语法转换为对象

@using System.Data
@model DataTable

@foreach (var row in Model.Rows)
{
   @row[]  // how do you cast this to a object?
}
Run Code Online (Sandbox Code Playgroud)

如何使用Razor语法将@row转换为对象?

asp.net-mvc razor

3
推荐指数
2
解决办法
3787
查看次数

启动枚举作为价值

我想将枚举变量声明为值.我怎样才能做到这一点?

例如:

public enum CardSuit {
   SPADE(0), HEART(1), DIAMOND(2), CLUB(3);
}
Run Code Online (Sandbox Code Playgroud)

我可以这样声明:

CardSuit s = CardSuit.SPADE;
Run Code Online (Sandbox Code Playgroud)

我也想这样声明:

CardSuit s = 1;
Run Code Online (Sandbox Code Playgroud)

这样做的方法是什么?这甚至可能吗?

java enums

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

从分类器VSIX获取语义模型

由于R#不支持Roslyn Early Preview C#6.0功能,代码看起来非常沉闷......

我想使用分类器VSIX对代码着色.是否有可能从Roslyn语言服务获取当前文档的语义模型?

c# roslyn visual-studio-2013

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

嵌套的三元运算符vs嵌套if else,这在可读性方面更好

我在代码审查中找到了由我的团队成员编写的代码.它包含嵌套的三元运算符.我告诉他如果有多个嵌套用于可读性目的,请使用if else.我们争论过这个问题.

以下是代码

ColorEnum color = opacity == Opacity.FIVE? ColorEnum.BLACK : 
                opacity == Opacity.TEN? ColorEnum.WHITE :
                    opacity == Opacity.FIFTY? ColorEnum.RED :
                        opacity == Opacity.TWENTY? ColorEnum.BLUE :
                            opacity == Opacity.FIFTEEN? ColorEnum.PURPLE : null;
Run Code Online (Sandbox Code Playgroud)

随着新配置的出现,这段代码正在发生变化.

那么这里有什么更好的?三元运算符还是其他?

language-agnostic ternary-operator conditional-operator

3
推荐指数
2
解决办法
343
查看次数

为什么在Guid转换为字符串时,ExpandoObject无法正常工作?

如果传递两个字符串,我有一段代码可以正常工作.由于某种原因,如果将GUID转换为字符串,它将无法正常工作.

更详细的说,如果我创建一个新的ExpandoObject并传递字符串值,它可以工作,但如果我将GUID转换为字符串,则不会.

下面的代码应该比较两个参数.在我的例子中,我传递了相同的两个字符串.对于Equal运算符,true如果字符串相同则应该返回.如果第二个参数GUID转换为字符串,则返回false偶数字符串是相同的.dynamicObj.Add(memberName, Guid.Parse(value).ToString());

不知道我错过了什么.这是我的代码.

 string value = "642188c7-8e10-e111-961b-0ee1388ccc3b";

 string memberName = "State";
 string contactValue = value;

 var dynamicObj = (IDictionary<string, object>)new ExpandoObject();   dynamicObj.Add(memberName, Guid.Parse(value).ToString());

 var expression = Expression.Parameter(typeof(object), "arg");
 var binder = Binder.GetMember(CSharpBinderFlags.None, memberName, null, new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) });

 var property = Expression.Dynamic(binder, typeof(object), expression);

 var isValid = false;
 var right = Expression.Constant(contactValue);
 var result = Expression.MakeBinary(ExpressionType.Equal, property, right);
 var func = typeof(Func<,>).MakeGenericType(dynamicObj.GetType(), typeof(bool));
 var expr = Expression.Lambda(func, result, expression).Compile();

 isValid = (bool)expr.DynamicInvoke(dynamicObj);
Run Code Online (Sandbox Code Playgroud)

c# linq lambda expression-trees

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