小编xan*_*tos的帖子

如何迭代IGrouping <T>接口?

我有一个非常讨厌的问题,我已经分组了一组数据,我无法得到组内的数据.我可以得到关键位而不是数据..

我有一堆表格中的数据

Data.Period = x
Data.Adjustment = y
Run Code Online (Sandbox Code Playgroud)

我执行GroupBy

var groupedData = Data.GroupBy(x => x.Period new {x.Period});
Run Code Online (Sandbox Code Playgroud)

这带回(根据linq)我的分层数据,它开始看起来我想要它.我喜欢迭代内容但不能......我该怎么做?我怎么...

了解如何在不使用投影的情况下进入Data.Adjustment.而且我不想投射,因为我必须执行另一个分组....帮助!:-)

c# linq

51
推荐指数
4
解决办法
5万
查看次数

更简单的写空或空的方式?

我相信我错过了一些东西.对于某个项目,我需要检查字符串是空还是空.

有没有更简单的方法来写这个?

if(myString == "" || myString == null)
{
   ...
Run Code Online (Sandbox Code Playgroud)

.net c# string null

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

忽略错误的证书 - .NET CORE

我正在编写一个.NET Core应用程序来轮询远程服务器并在显示时传输数据.这在PHP中非常有效,因为PHP忽略了证书(这在浏览器中也是一个问题)但是我们想将它移到C#.NET CORE,因为这是系统中唯一剩下的PHP.

我们知道服务器很好,但由于各种原因,证书不会/不会很快更新.

请求使用HttpClient:

        HttpClient httpClient = new HttpClient();
        try
        {
            string url = "https://URLGoesHere.php";
            MyData md = new MyData();  // this is some data we need to pass as a json
            string postBody = JsonConvert.SerializeObject(md);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));                
            HttpResponseMessage wcfResponse = await httpClient.PostAsync(url, new StringContent(postBody, Encoding.UTF8, "application/json"));
            Console.WriteLine(wcfResponse.Content);
        }
        catch (HttpRequestException hre)
        {
        // This exception is being triggered
        }
Run Code Online (Sandbox Code Playgroud)

研究过这个似乎普遍的建议是使用ServicePointManager,但这在.NET Core中不可用,而且我无法找到推荐的替代品.

有没有一种简单或更好的方法在.NET Core中执行此操作?

.net c# ignore ssl-certificate .net-core

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

.NET线程 - 分配需要锁定

我有一些多线程代码,我想增加一点的性能,所以我想知道我是否可以摆脱锁.

我有一个现场成员:

private IList<ServerStatus> status;
Run Code Online (Sandbox Code Playgroud)

它在这样的线程中更新:

status = GetUpdatedStatus();
Run Code Online (Sandbox Code Playgroud)

它在另一个线程中使用,如下所示:

var currentStatus = status;
Run Code Online (Sandbox Code Playgroud)

所以问题是,如果没有锁定两个赋值语句,上面会产生任何问题吗?

我想我能看到的唯一情况是currentStatus为null,但是我再次希望赋值有点线程安全(或者它已经更改了引用)

.net c# multithreading locking

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

帮助QueryOver和WhereExists

我有个问题.我有人和猫.每个Person都有一些Cats(Cats中有一个外键指向Persons中的主键).每只猫都有一个年龄.我想选择有"老"猫的人.我想要这些人的所有猫,而不仅仅是"老"猫.我需要使用QueryOver语法来完成它.

在T-SQL中它将是这样的:

SELECT P.*, C.*
FROM Persons P
LEFT JOIN Cats C
    ON P.Id = C.OwnerId
WHERE EXISTS (
    SELECT 1
    FROM Cats C2
    WHERE P.Id = C2.OwnerId AND C2.Age > 5)
Run Code Online (Sandbox Code Playgroud)

我知道我必须使用子查询,并且我可以轻松地使用"旧的"nhibernate语法(Criteria/DetachedCriteria),但我无法在QueryOver语法中执行此操作.

我不想要"IN"状态.我的主键是一个复杂的键,所以我无法使用IN.

var persons = session.QueryOver<Person>.WithSubquery.WhereExists( ??? );
Run Code Online (Sandbox Code Playgroud)

c# nhibernate fluent-nhibernate queryover

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

有关正则表达式的帮助包含和排除

我想要一些正则表达式的帮助.

我正在尝试创建一个包含某些字符串并排除某些字符串的表达式.

例如:

我想包含任何包含移动性的网址 http://www.something.com/mobility/

但是,我想排除任何包含商店的URL http://www.something.com/store/mobility/

仅供参考我有很多关键字,我正在使用.目前我包括这样/mobility|enterprise|products/i但是我发现它不能排除包含其他关键字的链接.

提前感谢您提供的任何帮助和见解.

_t

regex regex-negation

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

不能将Descendants()或Elements()与xmlns一起使用

我是使用XML的新手,在尝试从spring.net配置文件中获取特定标记时遇到了一个奇怪的问题.在尝试使用测试xml文件缩小问题范围后,我发现应用以下代码:

List<XElement> nodes = xmlFile.Descendants("B").ToList();
Run Code Online (Sandbox Code Playgroud)

提供包含以下文件的非空列表:

<?xml version="1.0" encoding="utf-8" ?>
<A fakeAttribute="aaa">
  <B id="DbProvider"/>
</A>
Run Code Online (Sandbox Code Playgroud)

但是提供了一个带有以下文件的空字符串:

<?xml version="1.0" encoding="utf-8" ?>
<A xmlns="aaa">
  <B id="DbProvider"/>
</A>
Run Code Online (Sandbox Code Playgroud)

作为属性的文件之间的唯一区别.

我无法想象对此的解释.谢谢你的帮助.

c# xml linq linq-to-xml

10
推荐指数
3
解决办法
1230
查看次数

减慢创建具有许多线程的对象

我正在做一个产生数百个线程的项目.所有这些线程都处于"休眠"状态(它们被锁定在Monitor对象上).我注意到,如果我增加"休眠"线程的数量,程序会非常慢."有趣"的是,看着任务管理器似乎线程数越多,处理器就越自由.我已将问题缩小到对象创建.

有人可以向我解释一下吗?

我制作了一个小样本来测试它.这是一个控制台程序.它为每个处理器创建一个线程,并通过简单的测试("新对象()")测量它的速度.不,"新对象()"没有被淘汰(如果你不信任我,试试).主线程显示每个线程的速度.按CTRL-C,该程序产生50个"睡眠"线程.减速开始于50个线程.在任务管理器上可以看到大约250个,CPU不是100%使用(在我的是82%).

我已经尝试了三种锁定"休眠"线程的方法:Thread.CurrentThread.Suspend()(坏,坏,我知道:-)),锁定已经锁定的对象和Thread.Sleep(Timeout.Infinite).一样的.如果我使用新的Object()注释该行,并将其替换为Math.Sqrt(或没有任何内容),则问题不存在.速度不随线程数而变化.别人可以查一下吗?有谁知道瓶颈在哪里?

啊......你应该在发布模式下测试它而不从Visual Studio中启动它.我在双处理器上使用XP sp3(没有HT).我用.NET 3.5和4.0测试过它(测试不同的框架运行时)

namespace TestSpeed
{
    using System;
    using System.Collections.Generic;
    using System.Threading;

    class Program
    {
        private const long ticksInSec = 10000000;
        private const long ticksInMs = ticksInSec / 1000;
        private const int threadsTime = 50;
        private const int stackSizeBytes = 256 * 1024;
        private const int waitTimeMs = 1000;

        private static List<int> collects = new List<int>();
        private static int[] objsCreated;

        static void Main(string[] args)
        {
            objsCreated = new int[Environment.ProcessorCount];
            Monitor.Enter(objsCreated);

            for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

.net c# performance multithreading asynchronous

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

Async Await在Lambda表达式where子句中

我想在lambda表达式中调用异步方法.请帮我做下面的事情

例如 -

return xyz.Where(async x=> await AsyncMethodCall(x.val));
Run Code Online (Sandbox Code Playgroud)

Async方法看起来像

public async Task<bool> AsyncMethodCall(Data d){...}
Run Code Online (Sandbox Code Playgroud)

当我执行上述操作时,出现以下错误

错误CS4010无法将异步lambda表达式转换为委托类型 'Func<Data, bool>'.异步lambda表达式可能会返回void,Task 或者Task<T>没有一个可以转换为'Func<Data, bool>'.

在此先感谢您的帮助

.net c# linq lambda asynchronous

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

一个很好的库,用于在c ++中计算sha-256

我正在努力找到一个很好的库来计算sha256.我发现已经有很多选择

crypto ++:http://www.cryptopp.com/

openSSL:http://www.openssl.org/

MIRACL:http://www.shamus.ie/

我更喜欢一个知名的,广泛工业化的库,适用于所有操作系统,而不是最有效的库.

你对我推荐什么?(随意在我未提及的图书馆推荐).

c++ sha256

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