小编Lea*_*ner的帖子

如何在Enum上执行LINQ查询?

以下是我的Enumerator List:

public enum StatusEnum
{
    Open = 1,
    Rejected = 2,
    Accepted = 3,
    Started = 4,
    Completed = 5,
    Cancelled = 6,
    Assigned = 7
}
Run Code Online (Sandbox Code Playgroud)

我需要将它绑定到a Combobox,但是,只显示一些特定的状态而忽略其余的状态.

这是我到目前为止:

public static List<Activity.StatusEnum> StatusList()
{
        IEnumerable<Activity.StatusEnum> query = Enum.GetValues(typeof(Activity.StatusEnum)).Cast<Activity.StatusEnum>()
                        .Where(x => x == Activity.StatusEnum.Open
                            || x == Activity.StatusEnum.Rejected
                            || x == Activity.StatusEnum.Accepted
                            || x == Activity.StatusEnum.Started);
        return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)

但是,我觉得代码有点乱,并不是将过滤Enum列表绑定到的正确方法Combobox.任何人都可以建议一个更强大的方法吗?

更新

我可能需要更改选择顺序.所以我需要一个通用的解决方案,它不仅可以获得前X个状态.

.net c# linq data-binding enums

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

如何在TSQL中将分钟数转换为hh:mm格式?

我有一个选择查询,其中包含DURATION用于计算分钟数的列.我想将这些分钟转换为hh:mm格式.

持续时间的值如 60, 120,150

例如:

60变为 01:00小时

120变为 02:00小时

150变成 02:30小时

另外,这是我检索DURATION(Minutes)的方法

DATEDIFF(minute, FirstDate,LastDate) as 'Duration (Minutes)'
Run Code Online (Sandbox Code Playgroud)

t-sql datediff type-conversion sql-server-2008

29
推荐指数
5
解决办法
12万
查看次数

ThreadPool.QueueUserWorkItem和Parallel.ForEach之间的区别?

以下两种方法之间的主要区别是什么:

ThreadPool.QueueUserWorkItem

    Clients objClient = new Clients();
    List<Clients> objClientList = Clients.GetClientList();

    foreach (var list in objClientList)
    {
        ThreadPool.QueueUserWorkItem(new WaitCallback(SendFilesToClient), list);
    } 
Run Code Online (Sandbox Code Playgroud)

System.Threading.Tasks.Parallel ForEach

    Clients objClient = new Clients();
    List<Clients> objClientList = Clients.GetClientList();

    Parallel.ForEach<Clients>(objClientList, list =>
    {
        SendFilesToClient(list);
    });
Run Code Online (Sandbox Code Playgroud)

我是多线程新手,想知道在每种情况下会发生什么(在执行过程方面)每种方法的多线程水平是多少?帮助我想象这两个过程.

SendFilesToClient:从数据库获取数据,转换为Excel并将Excel文件发送到相应的客户端.

谢谢!

c# multithreading windows-services queueuserworkitem parallel.foreach

22
推荐指数
1
解决办法
6614
查看次数

如何从.NET资源(RESX)文件中获取字符串值

这是我的RESX文件的样子:

Name            Value        Comments
Rule_seconds    seconds      seconds
Rule_Sound      Sound        Sound
Run Code Online (Sandbox Code Playgroud)

我想要的是:按字符串名称值,如下所示:

public string GetResxNameByValue(string value)
{
// some code to get name value
}
Run Code Online (Sandbox Code Playgroud)

并按如下方式实现:

string str = GetResxNameByValue("seconds");
Run Code Online (Sandbox Code Playgroud)

所以这str将回来Rule_seconds

谢谢!

.net c# resx

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

谷歌静态地图上可以放置的标记数量是否有限制?

是否可以在静态Google地图图像上放置(比如说1000个)标记(使用一组LAT-LONG值)?此外,是否有某种HTTP POST方法来实现这一点或URL是唯一的方法去?

基本上,我正在研究Bing地图REST服务 - Imagery和我发现最多100个图钉(标记)可以放在Bing地图上.

我想生成带有无限标记/图钉的静态地图.Google或Bing并不重要.

像这样:http://msdn.microsoft.com/en-us/library/ff701724.aspx#code-snippet-19

google-maps bing-maps google-maps-static-api bing-api

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

在t-sql中将二进制转换为uniqueidentifier?

我有以下代码将唯一标识符转换为二进制:

CAST(GUID AS BINARY(16))
Run Code Online (Sandbox Code Playgroud)

这导致了这一点 '0x56B3C0955919CD40931F550749A83AF3'

现在,我想将此(即二进制字符串值 '0x56B3C0955919CD40931F550749A83AF3')转换为唯一标识符.

有任何简单的方法来实现这一目

t-sql sql-server-2008-r2

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

如何在Dynamic对象中使用Parallel.ForEach方法

我已经使用Parallel.ForEach功能来同时处理多个客户端,如下所示:

Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();

Parallel.ForEach<Clients>(objClientList, list =>
{
    SendFilesToClient(list);
});
Run Code Online (Sandbox Code Playgroud)

但是现在,我没有创建Client类,而是决定动态创建客户端对象,如下所示:

var xDoc = XDocument.Load(new StreamReader(xmlPath + @"\client.xml"));
dynamic root = new ExpandoObject();

XmlToDynamic.Parse(root, xDoc.Elements().First());

dynamic clients = new List<dynamic>();

for (int i = 0; i < root.clients.client.Count; i++)
{
    clients.Add(new ExpandoObject());
    clients[i].Id = root.clients.client[i].id;
    clients[i].Name = root.clients.client[i].name;
    List<string> list = new List<string>();
    for (int j = 0; j < root.clients.client[i].emails.email.Count; j++)
    {
        list.Add(root.clients.client[i].emails.email[j].ToString());
    }
    clients[i].Email = string.Join(",", list);
}
Run Code Online (Sandbox Code Playgroud)

现在我不使用Client类并动态生成对象,如何使用Parallel.ForEach功能同时处理动态对象中的多个客户端,就像我以前使用类对象一样?

希望我清楚自己.

此外,如果您能告诉我我的方法是否有问题或者告诉我更好的方法,我将不胜感激.

c# parallel-processing .net-4.0 dynamicobject parallel.foreach

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

'使用'System.Net.Mail.SmtpClient'类型的操作数必须实现'System.IDisposable' - (.NET 3.5)

我有一个要求,我需要将.NET 4.0项目转换为.NET 3.5项目,其他一切都很好,除了"SmtpClient"到目前为止,我发现.NET 3.5 SmtpClient没有实现IDisposable,而在.NET 4.0中它的确!

下面是在.NET4.0上运行良好但在.NET3.5上运行的代码:

Using MailServer As New SmtpClient(MailServerName)
MailServer.Credentials = New System.Net.NetworkCredential(MailServerUserName, MailServerPassword)
SendMail(MailServer, msgBody, msgSubject, FromEmail, ToEmail)
End Using
Run Code Online (Sandbox Code Playgroud)

任何想法如何使用.NET 3.5(我更喜欢使用"使用"代码块来自动处理对象而不是旧式手动配置)

.net vb.net idisposable smtpclient

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

如何在Windows服务中使用Threadpool.QueueUserWorkItem?

我有一个Windows服务,我在使用Threadpool.QueueUserWorkItem.该服务连接到多个客户端数据库,抓取数据,转换为XLS并将文件发送到相应的FTP.

关于以下代码我有3个问题:

  1. 我正确使用Threadpool.QueueUserWorkItem吗?
  2. 我是否需要在代码中的任何位置使用Lock以避免出现问题?如果是,那里和哪个对象.
  3. 代码中有什么不正确的东西吗?如果是,那该怎么办?

码:

private static System.Timers.Timer aTimer = new System.Timers.Timer(50000);

public void OnStart(string[] args)
        {
            CLE.WriteToEventLog("Service Started");
            try
            {
                aTimer.Elapsed += new ElapsedEventHandler(PerformTimerOperation);
                aTimer.Enabled = true;
            }
            catch (Exception ex)
            {
                CLE.WriteToEventLog("Error Starting Service: " + ex.Message);
            }
        }

private void PerformTimerOperation(object source, ElapsedEventArgs e)
        {
            CLE.WriteToEventLog("Timer Operation Started");
                Clients objClient = new Clients();
                List<Clients> objClientList = Clients.GetClientList();

                foreach (var list in objClientList)
                {
                    ThreadPool.QueueUserWorkItem(new WaitCallback(SendFilesToClient), list);
                }                
        }

private void SendFilesToClient(Object stateInfo)
        {
            CLE.WriteToEventLog("Send Files To …
Run Code Online (Sandbox Code Playgroud)

multithreading windows-services queueuserworkitem c#-4.0

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

如何基于先前返回的值向LINQ查询添加条件条件

例如:

var sList = from ASL in aslist
            where ASL.Description == as.ToString()
            select ASL;
as = sList.FirstOrDefault();
var rList = from ARL in arlist
            where ARL.Description == rDescription && ARL.Id == as.Id
            select ARL;
Run Code Online (Sandbox Code Playgroud)

现在如您所见,rList查询的最后一个条件(即&& ARL.Id == as.Id)基于从sList查询中检索的值.我的问题是,当sListNULL,我得到一个错误.我想包括最后一个条件(即&& ARL.Id == as.Id),如果sList不是null.

我可以使用if else,如下所示,但如果可能的话,我想优雅地使用LINQ:

if (as != null)
{
    // include ARL.Id == as.Id condition in the query
} 
else
{
    // exclude ARL.Id == as.Id condition …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

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

将存储过程输入参数分配给局部变量是否有助于优化查询?

我有一个存储过程,需要5个输入参数.该过程有点复杂,需要大约2分钟才能执行.我正在优化查询.

所以,我的问题是,它是否总是有助于将输入参数分配给局部变量,然后在过程中使用局部变量?

如果是这样,它有什么帮助?

sql t-sql stored-procedures query-optimization sql-server-2008

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

什么是"With"代码块的C#替代品(仅限VB.NET)?

我知道C#不支持"With"代码块.但是,如何在C#中编写以下代码块:

string SomeString = String.Empty;    
With CType(Lookups.LookupManager.Lookups.Item(GetType(Lookups.SomeLists)), Lookups.SomeLists)
    SomeString = .SomeDataTableProperty.SomeColumn.ColumnName
End With
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# vb.net vb.net-to-c#

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