小编Ash*_*ani的帖子

在 if 条件下尝试解析

我正在 ASP.NET C# 中获取查询字符串数据,我需要它的字符串值和 int.Parse 值(如果可以解析)。(在示例中,我跳过检查空值,因为它对我的问题没有影响)

value = Request.QueryString["value"];
id = int.TryParse(Request.QueryString["value"], out id) 
Run Code Online (Sandbox Code Playgroud)

上面的代码满足了我的需要,但我只是好奇是否可以用一句话来写它,所以我尝试了以下方法:

if (int.TryParse(Request.QueryString["value"], out id))) value=Request.QueryString["value"];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果无法解析字符串值,我不会得到它,但我会得到它的解析值。

有什么建议么?我的代码没有问题,我只是出于好奇而问是否可以用单行代码完成。

c#

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

SQL Server:表值函数的结果与列名不匹配

我有这个功能:

CREATE FUNCTION [dbo].[full_ads](@date SMALLDATETIME)
returns TABLE
AS
    RETURN
      SELECT *,
             COALESCE((SELECT TOP 1 ptype
                       FROM   special_ads
                       WHERE  [adid] = a.id
                              AND @date BETWEEN starts AND ends), 1) AS ptype,
             (SELECT TOP 1 name
              FROM   cities
              WHERE  id = a.cid)                                     AS city,
             (SELECT TOP 1 name
              FROM   provinces
              WHERE  id = (SELECT pid
                           FROM   cities
                           WHERE  id = a.cid))                       AS province,
             (SELECT TOP 1 name
              FROM   models
              WHERE  id = a.mid)                                     AS model,
             (SELECT TOP 1 name
              FROM   car_names
              WHERE …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-functions

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

在Linq to SQL中使用归类

想象一下这个SQL查询

select * from products order by name collate Persian_100_CI_AI asc
Run Code Online (Sandbox Code Playgroud)

现在使用Linq:

product = DB.Products.OrderBy(p => p.name); // what should I do here?
Run Code Online (Sandbox Code Playgroud)

如何申请校对?

c# linq sql-server linq-to-sql

3
推荐指数
2
解决办法
6583
查看次数

通过QueryString设置区域性时,本地化有效,但在区域性中时则不起作用

这是我的路线:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
     name: "defaultWithCulture",
     template: "{culture=fa-IR}/{controller}/{action=Index}/{id?}");
        });
Run Code Online (Sandbox Code Playgroud)

但是当我使用链接时本地化有效:

http:// localhost:1776 / fa-IR / Home / About?culture = fa-ir

但不是什么时候

http:// localhost:1776 / fa-IR / Home /关于

为什么路线中的文化不适用?

.net c# asp.net routing asp.net-core

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

正则表达式接受部分匹配

我有一些验证代码,用于检查正则表达式的字符串.

Regex regex = new Regex(RegexPattern);
if (!regex.IsMatch(value))
{
    errorMessage = "The data is not in the correct format.";
    return false;
}
Run Code Online (Sandbox Code Playgroud)

如果我将正则表达式模式设置为^[0-9]*.[0-9]*.[0-9]*.[0-9]*$,则它正确接受1.0.0.0; 但是,它也接受1.0.0..

如何修改模式以便1.0.0.0接受但1.0.0.被拒绝?

.net c# regex asp.net

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

相同的代码在 .net core 和 .net 4.7.2 中给出不同的结果

下面是获取字符串的 Md5 值的以下 C# 代码

using System;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
        var urlPart = "dd5fad78903da9d3ce4905f8e731d6c4ýundefinedý3780534ý5";
        Console.WriteLine("value= " + urlPart);
        var md5val = md5(urlPart, Encoding.Default);
        Console.WriteLine("md5= " + md5val);
    }

    public static string md5(string value, System.Text.Encoding encoding)
    {
        var buffer = encoding.GetBytes(value);
        //Console.WriteLine("buffer= " + BitConverter.ToString(buffer));

        MD5 md5Hasher = MD5.Create();
        byte[] data = md5Hasher.ComputeHash(buffer);
        StringBuilder sBuilder = new StringBuilder();
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2")); …
Run Code Online (Sandbox Code Playgroud)

c# .net-core .net-4.7.2

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

获取返回的 JSON 字符串 C# 的值

我有 JSON 回复,我需要从中获取“Id”。我尝试了以下代码的 2 个变体

    using (JsonDocument document = JsonDocument.Parse(jsonstring))
    {

         JsonElement root = document.RootElement;
         JsonElement resultsElement = root.GetProperty("Result");
         List<string> names = new List<string>();

         foreach (var result in resultsElement.EnumerateObject())
         {


               if (result.Value.TryGetProperty("Id", out resultsElement))
               {
                    names.Add(resultsElement.GetString());
               }
         }
   }
Run Code Online (Sandbox Code Playgroud)

请求的操作需要类型为“Object”的元素,但目标元素的类型为“Number”。

将 EnumerateObject 调整为 Enumerate Array 但我仍然遇到相同的错误,使用 'Array' - 'Object' 而不是 'Object' - 'Array'

JSON 回复具有以下格式:

    {
    "code":1,
    "result":{
        "Id":1,
        "Name":"name"
        }
    }
Run Code Online (Sandbox Code Playgroud)

我似乎无法使用 bove 方法获取特定的 Id。

c# serialization json

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

调用作为对象传递的泛型类实例的方法

我有一个包含特殊集合的泛型类.此集合的一个实例作为对象传递给方法.现在我必须调用泛型类的方法之一.我看到的问题是我不知道集合中的项目是哪种类型,所以我在使用该属性之前无法进行转换.

public class MyGenericCollection<T>: ReadOnlyObservableCollection<T>
{
  public bool MyProperty
  {
    get
    {
      // do some stuff and return
    }
  }
}

public bool ProblematicMethod(object argument)
{
  MyGenericCollection impossibleCast = (MyGenericCollection) argument;
  return impossibleCast.MyProperty;
}
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题的方法?

c# generics methods casting

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

Global.asax中给定值的变量有时会返回错误的值

这是我的Global.asax档案:

private static bool ismobile = false;
public static bool IsMobile { get { return ismobile; } }

protected void Application_BeginRequest(object sender, EventArgs e)
    {

        if (Request.Cookies["ismobile"] == null || Request.Cookies["ismobile"].Value == "")
        {
            string u = Request.ServerVariables["HTTP_USER_AGENT"];
            Regex b = new Regex(@"(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase);
            Regex v = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-", RegexOptions.IgnoreCase);
            if (b.IsMatch(u) || v.IsMatch(u.Substring(0, 4))) ismobile = true; else …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net global-asax

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

创建一个列表,然后将其转换为数组

数组是非常快但你无法向数组中添加任何内容列表非常方便你可以添加新项目而不用担心但它们慢得多我首先使用列表添加我的项目然后将其转换为数组MyList.ToArray()然后我处理数组中的数据.现在我想知道这真的是有效的速度吗?或者我只是浪费了更多时间转换为数组?

c# arrays

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