小编Emm*_*l F的帖子

用NaN对双打数组进行排序

这更像是一个"你能解释这个"类型的问题,而不是其他任何问题.

我在工作中遇到了一个问题,我们在表中使用NaN值,但是当表被排序时,它以一种非常奇怪,奇怪的方式出现.我认为NaN正在捣乱,所以我写了一个测试应用程序来判断这是否属实.这就是我做的.

static void Main(string[] args)
{
    double[] someArray = { 4.0, 2.0, double.NaN, 1.0, 5.0, 3.0, double.NaN, 10.0, 9.0, 8.0 };

    foreach (double db in someArray)
    {
        Console.WriteLine(db);
    }

    Array.Sort(someArray);
    Console.WriteLine("\n\n");
    foreach (double db in someArray)
    {
        Console.WriteLine(db);
    }

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

之前:

4,2,NaN,1,5,3,NaN,10,9,8
Run Code Online (Sandbox Code Playgroud)

后:

1,4,NaN,2,3,5,8,9,10,NaN
Run Code Online (Sandbox Code Playgroud)

所以是的,NaN有些如何使排序的数组以奇怪的方式排序.

引用弗莱; "为什么这些东西?"

c# sorting nan .net-3.5

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

Basetype的BaseType

这是我在这里的第一个问题,所以我希望我能够很好地表达出来,并希望它不会太令人头疼.

我有以下类SubSim扩展了Sim,它扩展了MainSim.在一个完全独立的类(和库)中,我需要检查传递的对象是否是一种MainSim.所以要做以下检查;

Type t = GetType(sim);
//in this case, sim = SubSim
if (t != null)
{
  return t.BaseType == typeof(MainSim);
}

显然t.BaseType将返回Sim,因为Type.BaseType获取当前Type直接继承的类型.

除了必须执行t.BaseType.BaseType以获取MainSub之外,还有其他方法可以使用.NET库获取正确的类型吗?或者是否有可以重新定义以返回主类的覆盖?

先感谢您

c#

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

TreeView.DrawNode的问题 - OwnerDrawText

我有一个连接到远程服务器的应用程序,并在需要时轮询数据.它有一个TreeView,其中节点表示可用的对象,文本的颜色表示数据是否已加载; 灰色斜体表示未加载,黑色,常规文本被加载.

目前我已将TreeView设置为OwnderDrawText并使TreeView.DrawNode函数简单地绘制文本,如下所示:

private void TreeViewDrawNode(object sender, DrawTreeNodeEventArgs e)
{
    if (!e.Node.IsVisible)
    {
        return;
    }

    bool bLoaded = false;

    if (e.Bounds.Location.X >= 0 && e.Bounds.Location.Y >= 0)
    {
       if(e.Node.Tag != null)
       {
           //...
           // code determining whether data has been loaded is done here
           // setting bLoaded true or false
           //...
       }
       else
       {
           e.DrawDefault = true;
           return;
       }

       Font useFont = null;
       Brush useBrush = null;

       if (bLoaded)
       {
           useFont = e.Node.TreeView.Font;
           useBrush = SystemBrushes.WindowText;
        }
        else
        {
            useFont …
Run Code Online (Sandbox Code Playgroud)

c# treeview ownerdrawn winforms

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

使用Spring OAuth在Cookie中存储来自OAuth2服务器的令牌

Spring OAuth2是否提供了使用opaque或JWT令牌创建cookie的配置?到目前为止,我在Internet上找到的配置描述了为其创建授权服务器和客户端.在我的例子中,客户端是一个网关,Angular 4应用程序位于同一可部署的顶部.前端向网关发出请求,通过Zuul路由它们.使用@EnableOAuth2Sso,application.yml和WebSecurityConfigurerAdapter 配置客户端会生成所有必要的请求和重定向,将信息添加到SecurityContext但将信息存储在会话中,并将JSESSIONID cookie发送回UI.

是否需要任何配置或过滤器来创建带有令牌信息的cookie,然后使用我可以使用的无状态会话?或者我是否必须自己创建它,然后创建一个查找令牌的过滤器?

    @SpringBootApplication
    @EnableOAuth2Sso
    @RestController
    public class ClientApplication extends WebSecurityConfigurerAdapter{

        @RequestMapping("/user")
        public String home(Principal user) {
            return "Hello " + user.getName();
        }

        public static void main(String[] args) {
            new SpringApplicationBuilder(ClientApplication.class).run(args);
        }

        @Override
        public void configure(HttpSecurity http) throws Exception {
            http
                    .antMatcher("/**").authorizeRequests()
                    .antMatchers("/", "/login**", "/webjars/**").permitAll()
                    .anyRequest()
                    .authenticated()
                    .and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
        }
    }


    server:
      port: 9999
      context-path: /client
    security:
      oauth2:
        client:
          clientId: acme
          clientSecret: acmesecret
          accessTokenUri: http://localhost:9080/uaa/oauth/token
          userAuthorizationUri: http://localhost:9080/uaa/oauth/authorize
          tokenName: access_token
          authenticationScheme: query
          clientAuthenticationScheme: form
        resource:
          userInfoUri: http://localhost:9080/uaa/me

Run Code Online (Sandbox Code Playgroud)

spring-security spring-oauth2

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

比较2个表的值并列出不同的行

这个问题和这个问题一样,但略有不同.

我有2个表,TableA和TableB,其中TableB实际上只是TableA的备份,唯一真正的区别是TableB有一个"ACTION"列,表示在TableA中采取的操作.现在我忽略了那个专栏(虽然理想情况下我希望将它附加到最终结果中,所以请随意建议:D)

我想比较两个表,并从每个表中获取不同的行.我使用过Jeff的SQL Server博客 - 比较SQL Server中两个表的最短,最快,最简单的方法:UNION!但是,创建查询的示例只返回TableB中不同的行.

推荐的方法是什么?

注意:代码与第二个链接中的示例完全相同,因此我不会在此处发布任何代码

sql-server-2008

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

Scala 模块需要 Spark 的特定版本的数据绑定

我在尝试让 Spark 加载、读取和查询镶木地板文件时遇到问题。基础设施似乎已建立(Spark 独立版 3.0)并且可以看到并且将开始工作。

我遇到的问题是当这条线被调用时

    Dataset<Row> parquetFileDF = sparkSession.read().parquet(parquePath);
Run Code Online (Sandbox Code Playgroud)

抛出以下错误

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Scala module 2.10.0 requires Jackson Databind version >= 2.10.0 and < 2.11.0
    at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
Run Code Online (Sandbox Code Playgroud)

我查看了一下JacksonModule.setupModule,发现context.getMapperVersion正在通过的版本是 2.9.10。在我看来,DefaultScalaModule 正在提取一些旧版本。

我正在使用 Gradle 来构建并设置依赖项

    implementation 'com.fasterxml.jackson.core:jackson-core:2.10.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.0'
    implementation 'org.apache.spark:spark-core_2.12:3.0.0'
    implementation 'org.apache.spark:spark-sql_2.12:3.0.0'
    implementation 'org.apache.spark:spark-launcher_2.12:3.0.0'
    implementation 'org.apache.spark:spark-catalyst_2.12:3.0.0'
    implementation 'org.apache.spark:spark-streaming_2.12:3.0.0'
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我尝试强制数据绑定

    implementation ('com.fasterxml.jackson.core:jackson-databind') {
        version {
            strictly '2.10.0'
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试了几个不同的版本,但仍然遇到这个问题。也许我错过了一些超级简单的东西,但现在,我似乎无法克服这个错误。

任何帮助,将不胜感激。

java scala apache-spark jackson-databind

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

回归本源; for循环,数组/向量/列表和优化

我最近正在研究一些代码并且遇到了一个方法,该方法有3个for循环,可以在2个不同的数组上运行.

基本上,发生的事情是foreach循环将遍历向量并从对象转换DateTime,然后另一个foreach循环将从对象转换长值.这些循环中的每一个都将转换后的值存储到列表中.

最后一个循环将遍历这两个列表并将这些值存储到另一个列表中,因为需要对该日期进行一次最终转换.

然后在完成所有操作之后,使用ToArray()将最后两个列表转换为数组.

好吧,忍受我,我终于得到了我的问题.

因此,我决定制作一个for循环来替换前两个foreach循环并一举转换值(第三个循环是准必要的,但是,我确信有些工作我也可以把它放入单回路).

但后来我读到Gustav Duarte撰写的文章"你的计算机在等待时做了什么",并开始考虑内存管理以及在for循环中访问数据时正在进行的操作,其中两个列表同时被访问.

所以我的问题是,对于这样的事情,最好的方法是什么?尝试压缩for循环,使其尽可能少地循环,从而导致不同列表的多个数据访问.或者,允许多个循环并让系统引入它预期的数据.这些列表和数组可能很大并且循环遍历3个列表,可能是4个,这取决于如何实现ToArray(),可以获得非常高的成本(O(n ^ 3)??).但是根据我在上述文章和我的CS课程中的理解,不得不提取数据也很昂贵.

有谁愿意提供任何见解?或者我完全脱掉摇杆,需要重新学习我没有学过的东西?

谢谢

c# arrays optimization performance list

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

有没有办法将文字叠加到NotifyIcon上?

我目前正在编写一个具有NotifyIcon的应用程序,我正在尝试找到一种将文本叠加到其上的方法.因此,例如,如果图标指示打开的文件数,则它具有图标加上顶部的数字.

有没有办法做到这一点?我已经看到NotifyIcon的实例仅仅是文本,例如SpeedFan.

任何建议或参考将不胜感激.

.net c# notifyicon

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

ASP.NET OnClick不在具有自定义控件的Repeater.ItemTemplate中触发

标题有点拗口,但我对这个问题有点困惑.

我有一个搜索结果页面,其中包含一个自定义控件Repeater.所述ItemTemplate在转发器是一个PlaceHolder,所以我可以构建项以特定的格式; 更具体地说,我有一系列"疾病",其形式Disease1|disease2|disease3和需要为每种疾病提供联系.

现在有些代码:

以下是SearchResultControl.ascx

<asp:Panel ID="SearchResultPanel" runat="server" ScrollBars="Auto">
    <asp:Repeater ID="Repeater1" runat="server" 
        onitemcreated="Repeater1_ItemCreated" 
        onitemcommand="Repeater1_ItemCommand">
        <ItemTemplate>
            <asp:PlaceHolder ID="ItemTemplatePlaceHolder" runat="server">
            </asp:PlaceHolder>
        </ItemTemplate>
        <SeparatorTemplate>
        <tr>
        <td colspan="6"><hr /></td>
        </tr>
        </SeparatorTemplate>
    </asp:Repeater>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

后面的代码:SearchResultControl.ascx.cs

protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.DataItem != null)
    {
        PlaceHolder placeHolder = e.Item.FindControl("ItemTemplatePlaceHolder") as PlaceHolder;
        Control searchResultItem = Page.LoadControl("SearchResultItem.ascx");

        DataRow row = (e.Item.DataItem as DataRowView).Row;

        if (row != null)
        {
            string diseaseState = row["DiseaseStates"] as string;
            searchResultItem.GetType().GetProperty("DiseaseStates").SetValue(searchResultItem, …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net repeater

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

如何为给定的例子制定正则表达式

我对正则表达式并不十分熟悉.我不得不使用它们,也许每隔几年使用一次,这主要是为了课程工作.无论如何,对于熟悉正则表达式的人来说,以下问题应该是一个相当直接的问题/答案.

我需要确保输入字段的文本遵循以下格式:

x y z

要么

x,y,z

要么

x y z / <same pattern can repeat for almost unlimited length>

要么

x,y,z / <...> // Spaces after the comma are ok

其中x,y和z只能是整数.图案不能混合,所以你不能拥有

x, y, z / x y z / ...

我尝试了以下内容

([1-9] [1-9] [1-9])
Run Code Online (Sandbox Code Playgroud)

获取xyz部分,但我不知道如何包含'/'和','

有什么建议?

c# regex

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