我想创建一个方法来查找两个数之和的索引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) 我想获得类的属性的属性.
我现在拥有的:
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等不是实际属性.
我的目标是获取类属性的属性,然后编辑它们的值(使用另一个函数截断它们).
谢谢.
比方说,我有一个电子邮件列表,如:
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)
当我尝试调试它时,我的解决方案似乎没有选择任何东西.