我已经开始在.NET 3.5中使用Linq-to-entities,而且我遇到了一个我可以在SQL中轻松实现的场景,但我对linq有很大的困难.我在SQL数据库中有一个包含三个字段的表,为了这个例子的目的,我将它们称为foo,bar和foo_index,并像这样填充它们:
大段引用
foo | 吧| foo_index
555 101 1
555 101 2
555 101 3
555 101 4
555 101 5
要得到最大foo_index处的条形,其中foo = 555,SQL就是
SELECT bar, max(foo_index) as max_foo_index
FROM T
WHERE foo=555
GROUP BY bar
Run Code Online (Sandbox Code Playgroud)
我已经在C#中编写了一些linq-to-entities代码,但是我觉得有一个更加优雅的解决方案,而且我缺少一些可以使下面的内容更容易的概念.另外,有没有其他方法可以从var中获取数据?
db_entity db = new db_entity();
var q =
from table in db.T
where table.FOO == 555
select new { table.BAR, table.FOO_INDEX };
var q2 =
from t2 in q
where t2.FOO_INDEX == table.Max(r => r.FOO_INDEX)
select new { t2.BAR };
int result …Run Code Online (Sandbox Code Playgroud) 例如,我正在编写一个Foo需要显式初始化和终止的API .(应该是语言不可知的,但我在这里使用C++)
class Foo
{
public:
static void InitLibrary(int someMagicInputRequiredAtRuntime);
static void TermLibrary(int someOtherInput);
};
Run Code Online (Sandbox Code Playgroud)
显然,我们的图书馆并不关心多线程,重入或其他什么.让我们假设我们的Init函数只应该被调用一次,再次使用任何其他输入调用它会造成严重破坏.
将此信息传达给来电者的最佳方式是什么?我可以想到两种方式:
InitLibrary,我是assert一些静态变量,它会责怪我的调用者初始化两次.InitLibrary,我检查一些静态变量,如果我的lib已经初始化,则默默地中止.方法#1显然是明确的,而方法#2使其更加用户友好.我认为方法#2可能有一个缺点,即我的调用者不会意识到不应该InitLibrary被调用两次的事实.
每种方法的优缺点是什么?是否有更聪明的方法来颠覆所有这些?
我知道这里的例子非常人为.正如@daemon指出的那样,我应该初始化自己而不是打扰来电者.但实际上,有些地方我需要更多信息来正确初始化自己(注意使用我的变量名someMagicInputRequiredAtRuntime).这不仅限于初始化/终止,而是存在困境的其他情况,无论我是否应该选择引用和引用"故障托管"或失败.
自从我上次编程C以来已经有一段时间了,似乎我在此期间已经忘记了所有内容......我有一个非常简单的指针问题.假设我有一个通过循环迭代计算求和的函数.此函数不仅应该返回循环计数器,还要返回它计算的总和.因为我可以只返回一个值,所以我假设我能做的最好就是声明一个指针.我能这样做吗:
int loop_function(int* sum)
{
int len = 10;
for(j = 0; j < len; j++)
{
sum += j;
}
return(j);
}
....
int sum = 0;
loop_function(&sum);
printf("Sum is: %d", sum);
Run Code Online (Sandbox Code Playgroud)
或者我是否需要定义一个额外的变量,指向我传递给函数的总和?
非常感谢,马库斯
经过一番研究后,我确定您可以应用于类的唯一访问修饰符是:
但是下面的错误消息似乎暗示如果一个类没有在命名空间中定义,那么它可以被定义为private,protected或protected internal.
public和internal是唯一可以在课堂上使用的类修饰符还是更多?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test2343434
{
class Program
{
static void Main(string[] args)
{
Tools.ToolManager toolManager = new Tools.ToolManager();
Console.ReadLine();
}
}
}
namespace Tools
{
//error: Elements defined in a namespace cannot be explicitly
//declared as private, protected, or protected internal
private class ToolManager
{
public ToolManager()
{
Console.WriteLine("inside tool manager");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有所有符号的偏移地址(通过 libelf 在其自己的二进制文件 .so 上执行获得)。现在,在运行时,我需要计算所有这些符号的绝对地址,为此我需要获取基地址(加载共享库的位置)并进行计算:
symbol_address = base_address + symbol_offset
共享库如何获得自己的基地址?在 Windows 上,我会使用传递给 DllMain 的参数,在 linux 中是否有一些等价物?
我正在使用以下代码成功发送电子邮件.但现在我想附上一个带有电子邮件的文本文件(例如:test.txt).任何的想法?
require_once "Mail.php";
$from = "Usman <from@example.com>";
$to = "Naveed <to@example.com>";
$subject = "subject";
$body = "";
$host = "smtp.gmail.com";
$username = "username";
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory( 'smtp', array('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password ) );
$mail = $smtp->send( $to, $headers, $body );
if ( PEAR::isError($mail) ) {
echo( "<p>" . $mail->getMessage() . "</p>" );
} else {
echo( "<p>Message …Run Code Online (Sandbox Code Playgroud) 提供以下代码:
class A {
Boolean b;
A easyMethod(A a){
a = null;
return a;
}
public static void main(String [] args){
A a1 = new A();
A a2 = new A();
A a3 = new A();
a3 = a1.easyMethod(a2);
a1 = null;
// Some other code
}
}
Run Code Online (Sandbox Code Playgroud)
问题是之前有多少对象符合垃圾收集的条件// Some other code.
然后正确答案是(至少那是面试官的答案):2 - 布尔值,b因为它是一个包装器和a1.
你能帮我解释一下为什么a2而a3不是垃圾收集?
后期编辑:
谢谢你的回答,我会在那之后发一些面试反馈:).
我对我的最新项目有两个要求:
在这里,我尝试了以下逻辑:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//i am dialing to a IVR from the native dialer
if (/* A check to validate wether to call or not */)
{
NSLog(@"Dialing");
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:"]];
// A loop check wether the call get connected
while (!callDidConnected){
callDidConnected = // doing a check with server
}
// if call get connected then launching my application
if (callDidConnected){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"MyApp:"]];
}
}
else
{
// normal app
}
} …Run Code Online (Sandbox Code Playgroud) 将数字量转换为英语单词的最有效方法是什么?
例如12到12 127到122
搜索引擎和/或屏幕阅读器是否重视HTML5中的新标签?
有时我认为我会在JavaScript的帮助下使用HTML5,但是如果搜索引擎和/或屏幕阅读器无法理解新标签会有什么好处呢?
<header>并且<div class="header">是同样的事情,如果<header>有SEO和屏幕阅读器没有任何好处.