相关疑难解决方法(0)

比较两个.NET Array对象

我想比较两个.NET数组.这是一个比较字节数组的明显实现:

bool AreEqual(byte[] a, byte[] b){
    if(a.Length != b.Length)
        return false;
    for(int i = 0; i < a.Length; i++)
        if(a[i] != b[i])
            return false;

    return true;
}
Run Code Online (Sandbox Code Playgroud)

这里可以看到更精致的方法(通过谷歌).

  1. 比较两个.NET数组的最简单方法(使用较少的代码但可读)是什么?
  2. 比较两个.NET数组最有效的方法是什么?

.net arrays

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

IEnumerable Group按用户指定的动态键列表

我有一个类似的课程

public class Empolyee
{
    public string Designation {get ;set;}
    public string Discipline {get ;set;}
    public int Scale {get ;set;}
    public DateTime DOB {get ;set;}
    public int Sales {get ;set;}
}
Run Code Online (Sandbox Code Playgroud)

并以可数的说法记录所有员工的记录

List<Employee> Employees;
Run Code Online (Sandbox Code Playgroud)

和一个字符串键列表

var Keys = new List<string>()
{
    "Designation",
    "Scale",
    "DOB"
};
Run Code Online (Sandbox Code Playgroud)

假设列表"Keys"的元素是用户指定的,用户可以指定no或许多关键元素.

现在我想使用列表"Keys"中指定的键对所有"Employees"进行分组,并仅选择"Keys"中指定的属性以及每个组的Sales of Sum.

在我尝试使用的3个解决方案中,以下看起来适用但无法使用它,因为不知道列表"Keys"将如何转换为匿名类型

Employees.GroupBy(e => new { e.Key1, e.Key2, ... })
    .Select(group => new {
        Key1 = group.Key.Key1,
        Key2 = group.Key.Key2,
        ...
        TotalSales = group.Select(employee => employee.Sales).Sum()
    });
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc ienumerable lambda

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

LINQ GroupBy系列

是否可以使用集合属性在LINQ中进行GroupBy?

例如

void Main()
{
    var t1 = new Test() { Children = new List<string>() { "one", "two" } };
    var t2 = new Test() { Children = new List<string>() { "one", "two" } };
    var t3 = new Test() { Children = new List<string>() { "one", "three" }        };

    var tests = new List<Test>() { t1, t2, t3 };
    var anon =  from t in tests
                select new
                {
                    Children = t.Children
                };

    anon.GroupBy(t => t.Children).Dump();
}

public class …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects

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

C#中相同数组的不同哈希码

这是伪代码

sbyte[] array1 = new sbyte[100]; 
array1.setValues(); 
sbyte[] array2 = (sbyte[])array1.Clone();
Run Code Online (Sandbox Code Playgroud)

array1.getHashCode()不等于array2.getHashCode();

我该怎么做才能获得array1和array2的相同哈希码?

PS:字典没用.因为我想将这些数组添加到哈希表中.每次添加后,我需要检查之前添加的可能相同的内容数组.

P.S2:我似乎应该澄清我的问题.起初我在C#使用Hash发布了完整的问题,当它被解决时,提出了这个问题.

c# arrays hashcode

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

标签 统计

c# ×3

.net ×2

arrays ×2

asp.net-mvc ×1

hashcode ×1

ienumerable ×1

lambda ×1

linq ×1

linq-to-objects ×1