小编Him*_*ere的帖子

将Nullable转换为ValueType

有什么区别Nullable.Value(<whatEverType>) Nullable?据我所知,如果未设置值或值本身,则两个方法都返回NULL.

例如:

DateTime? date = DateTime.Now;
DateTime now = (DateTime) date;
DateTime now2 = date.Value;
Run Code Online (Sandbox Code Playgroud)

c# nullable

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

如果一个对象是指定的Type,它仍然可以为null吗?

如果你检查一个对象的类型,并发现它是你检查过的类型,并将它转换为这种类型,转换后这种类型是否仍然为空?

我正在运行的代码质量扫描应用程序抱怨以下内容:

if (tx.Tag is ExtendedNodeInfo && ty.Tag is ExtendedNodeInfo)
{
    var tagX = tx.Tag as ExtendedNodeInfo;
    var tagY = ty.Tag as ExtendedNodeInfo;                                        
    // HP Fortify scan says the below line's use of tagX/Y can be null.
    // If I add null checks below for taX/Y, Resharper says 
    // its redundant as its always not null
    return tagX.Ordinal.CompareTo(tagY.Ordinal);
}
Run Code Online (Sandbox Code Playgroud)

c#

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

Linq三元代码更好的解决方案

我有开发人员写的这段代码.我觉得它太可怕而且不一定是必要的

value = s.Businesses.SelectMany(
    x => x.Payments.Where(
        w => w.total != 0 && 
        !w.jobId.HasValue && 
        w.createdAt >= Utility.monthS 
        && w.createdAt <= Utility.monthE)
    ).Any() ? 
        s.Businesses.SelectMany(
            x => x.Payments.Where(
                w => w.total != 0 && 
                !w.jobId.HasValue && 
                w.createdAt >= Utility.monthS 
                && w.createdAt <= Utility.monthE)
            ).Sum(su => su.quantity) 
        : 0;
Run Code Online (Sandbox Code Playgroud)

.Any之前执行的原因Sum是没有值的记录最终得到空值并导致错误.

有没有更好的最佳实践方式来写这篇文章.

c# asp.net entity-framework

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

如何从列表中删除连续的重复项目

我有一个列表,如:

  A  B B  C D D D B E D
Run Code Online (Sandbox Code Playgroud)

我想从列表中删除连续的重复项目以获取

  A  B C D B E D 
Run Code Online (Sandbox Code Playgroud)

如果我尝试Distinct(),它给了我A B C D E

c# linq algorithm list

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

通过引用传递引用类型以指示它将被修改

我在我们的应用程序中找到了一些代码,它通过List<T>引用来表明它已被修改:

void DoSomething(ref List<MyType> theList)
{
    theList.Add(new MyType());
}
Run Code Online (Sandbox Code Playgroud)

我认为很明显ref-keyword在这种情况下已经过时了,因为我们还可以在没有关键字的情况下向列表中添加新元素.但是它表明我们修改了列表或至少修改了它的元素.我发现如果你有很多参数并希望看到哪些参数被修改以及哪些只是作为值来传递,那么这个特别有用.

如果这是好的问题肯定是基于意见的,对SO来说是无效的,我宁愿问是否有另一种方法来实现这一点,或者我是否应该关心它.

编辑:稍微澄清一下我的问题.如果列表被修改,则不会出现此问题,这只是一个示例.或者我也使用任何其他参考类型,而不仅仅是List<T>.

c# ref

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

分割字符串数组后如何获取值?

我有以下问题.分裂之后我想把作者,标题和booktype变成这样的变量.

string author = George Orwell
string title = Animal Farm
string booktype = novel
Run Code Online (Sandbox Code Playgroud)

使用foreach循环打印它们很容易,但我如何获得这些值?希望有人能帮助我.

static void Main(string[] args)
{
    string[] book = new string[12];
    book[0] = "George Orwell###Animal Farm###Novel###";
    string value = book[0];
    string[] item = Regex.Split(value, "###");

    foreach (string newItem in item)
    {
        Console.WriteLine(newItem);
    }
    // prints out just fine

    // George Orwell
    // Animal Farm
    // Novel
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

c#

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

我应该返回哪种类型?

这里我有两个表有一些列.这里我的目标是我想使用ChilsMaster进行GroupBy操作

public partial class Master
{
    public int MasterId { get; set; }
    public string Prod_Name { get; set; }
    public string Produ_Adress { get; set; }
    public Nullable<decimal> Price { get; set; }
}

public partial class ChildMasterMaster
{
    public int ChildId { get; set; }
    public Nullable<int> MasterId { get; set; }
    public string SalesRec { get; set; }
    public Nullable<bool> Prod_Deliver { get; set; }
}

public class Market_Masters
{    
    public int MasterId { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

标签 统计

c# ×7

linq ×2

algorithm ×1

asp.net ×1

entity-framework ×1

list ×1

nullable ×1

ref ×1