小编use*_*102的帖子

使用linq避免嵌套循环

我想创建一个方法来查找两个数之和的索引target.

所以,我创建了这个方法:

public static int[] TwoSum(int[] nums, int target)
{
    for (var i = 0; i < nums.Length; i++)
    {
        for (var j = 0; j < nums.Length; j++)
        {
            if (j == i) continue;

            if (nums[i] + nums[j] == target)
            {
                return new[] { i, j };
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但是,我正在努力学习一些LINQ并且无法弄明白.我查看了各种示例,但我总是卡住,因为我使用了两次相同的数组.所以我不知道要选择什么以及如何访问它两次,同时确保它不会两次通过相同的索引.

任何从上述循环获得LINQ的帮助将不胜感激.

样本数据:

var nums = new [] { 2, 7, 11, 15 };
var target = 9;
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
0
解决办法
190
查看次数

获取类属性的属性

我想获得类的属性的属性.

我现在拥有的:

foreach (var v in test.GetType().GetProperties())
{
    foreach (var p in v.GetType().GetProperties())
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

第一个foreach循环工作正常,并获取类变量的属性test.然而,在第二循环中,我得到的输出,例如MemberType,ReflectedType,Module等不是实际属性.

我的目标是获取类属性的属性,然后编辑它们的值(使用另一个函数截断它们).

谢谢.

c# reflection system.reflection

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

从电子邮件列表中获取唯一域列表

比方说,我有一个电子邮件列表,如:

a@domain.com
b@domain.com
c@domain.com
d@sub.domain2.com
g@sub.domain2.com
x@gmail.com
y@analytics.gmail.com
z@yahoo.com
Run Code Online (Sandbox Code Playgroud)

我想获得之后的部分@,只获得一次(独特).

到目前为止我尝试了什么:

string[] campusCup(string[] emails)
{
    var hs = new HashSet<string>();

    var emailList = emails.Select(x => new { domain = x.Split('@')[1] })
                            .Where(x => hs.Add(x.domain) && Write(x.domain));

    return hs.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

当我尝试调试它时,我的解决方案似乎没有选择任何东西.

.net c# linq .net-core

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

标签 统计

c# ×3

linq ×2

.net ×1

.net-core ×1

reflection ×1

system.reflection ×1