问题列表 - 第31122页

Linq-to-entities:在SQL中很容易找到最大值,但在LINQ中很难?

我已经开始在.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)

c# linq-to-entities .net-3.5

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

API设计:是"容错"的好事吗?

我已经整合了许多有用的答案,并在下面提出了我自己的答案


例如,我正在编写一个Foo需要显式初始化和终止的API .(应该是语言不可知的,但我在这里使用C++)

class Foo
{
public:
    static void InitLibrary(int someMagicInputRequiredAtRuntime);
    static void TermLibrary(int someOtherInput);
};
Run Code Online (Sandbox Code Playgroud)

显然,我们的图书馆并不关心多线程,重入或其他什么.让我们假设我们的Init函数只应该被调用一次,再次使用任何其他输入调用它会造成严重破坏.

将此信息传达给来电者的最佳方式是什么?我可以想到两种方式:

  1. 在里面InitLibrary,我是assert一些静态变量,它会责怪我的调用者初始化两次.
  2. 在里面InitLibrary,我检查一些静态变量,如果我的lib已经初始化,则默默地中止.

方法#1显然是明确的,而方法#2使其更加用户友好.我认为方法#2可能有一个缺点,即我的调用者不会意识到不应该InitLibrary被调用两次的事实.

每种方法的优缺点是什么?是否有更聪明的方法来颠覆所有这些?

编辑

我知道这里的例子非常人为.正如@daemon指出的那样,我应该初始化自己而不是打扰来电者.但实际上,有些地方我需要更多信息来正确初始化自己(注意使用我的变量名someMagicInputRequiredAtRuntime).这不仅限于初始化/终止,而是存在困境的其他情况,无论我是否应该选择引用和引用"故障托管"或失败.

idioms api-design

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

基本的C指针问题

自从我上次编程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)

或者我是否需要定义一个额外的变量,指向我传递给函数的总和?

非常感谢,马库斯

c pointers

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

什么样的访问修饰符可以应用于类?

经过一番研究后,我确定您可以应用于类的唯一访问修饰符是:

  • 公众 - 任何集会都有
  • internal - 仅在当前程序集中可用

但是下面的错误消息似乎暗示如果一个类没有在命名空间中定义,那么它可以被定义为private,protectedprotected 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)

c# oop access-modifiers

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

共享库如何获取自己的基地址

我有所有符号的偏移地址(通过 libelf 在其自己的二进制文件 .so 上执行获得)。现在,在运行时,我需要计算所有这些符号的绝对地址,为此我需要获取基地址(加载共享库的位置)并进行计算:

symbol_address = base_address + symbol_offset

共享库如何获得自己的基地址?在 Windows 上,我会使用传递给 DllMain 的参数,在 linux 中是否有一些等价物?

gcc symbols shared-libraries elf dynamic-linking

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

PHP:如何使用smtp设置发送带附件的电子邮件?

我正在使用以下代码成功发送电子邮件.但现在我想附上一个带有电子邮件的文本文件(例如: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)

php email smtp email-attachments

8
推荐指数
1
解决办法
3万
查看次数

面试问题:符合垃圾收集条件的对象

提供以下代码:

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.

你能帮我解释一下为什么a2a3不是垃圾收集?

后期编辑:

  • 好的,我想我现在明白了.起初有点混乱,但现在我确信面试官是错的.我最初的错误是,起初我并不认为Java只是通过值传递,因此不可能从以"a2"作为参数的函数内部生成a2 null,因为a2实际上是a2的副本.
  • 布尔b的部分确实非常明显.

谢谢你的回答,我会在那之后发一些面试反馈:).

java garbage-collection

18
推荐指数
5
解决办法
8165
查看次数

iPhone应用程序终止后可以重新启动吗?

我对我的最新项目有两个要求:

  • 当应用程序第一次启动时,它应显示设备本机拨号程序,然后在后台检查callDidConnected.
  • 一旦callDidConnected为true,app就应该自行启动.

在这里,我尝试了以下逻辑:

 - (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)

iphone

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

将数字量转换为英语单词的算法

将数字量转换为英语单词的最有效方法是什么?

例如12到12 127到122

algorithm language-features

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

搜索引擎和/或屏幕阅读器是否重视HTML5中的新标签?

搜索引擎和/或屏幕阅读器是否重视HTML5中的新标签?

有时我认为我会在JavaScript的帮助下使用HTML5,但是如果搜索引擎和/或屏幕阅读器无法理解新标签会有什么好处呢?

<header>并且<div class="header">是同样的事情,如果<header>有SEO和屏幕阅读器没有任何好处.

seo html5 screen-readers

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