我正在 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)
在这种情况下,如果无法解析字符串值,我不会得到它,但我会得到它的解析值。
有什么建议么?我的代码没有问题,我只是出于好奇而问是否可以用单行代码完成。
我有这个功能:
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查询
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)
如何申请校对?
这是我的路线:
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 /关于
为什么路线中的文化不适用?
我有一些验证代码,用于检查正则表达式的字符串.
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.被拒绝?
下面是获取字符串的 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) 我有 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。
我有一个包含特殊集合的泛型类.此集合的一个实例作为对象传递给方法.现在我必须调用泛型类的方法之一.我看到的问题是我不知道集合中的项目是哪种类型,所以我在使用该属性之前无法进行转换.
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)
有没有解决这个问题的方法?
这是我的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) 数组是非常快但你无法向数组中添加任何内容列表非常方便你可以添加新项目而不用担心但它们慢得多我首先使用列表添加我的项目然后将其转换为数组MyList.ToArray()然后我处理数组中的数据.现在我想知道这真的是有效的速度吗?或者我只是浪费了更多时间转换为数组?
c# ×9
.net ×3
asp.net ×3
sql-server ×2
.net-4.7.2 ×1
.net-core ×1
arrays ×1
asp.net-core ×1
casting ×1
generics ×1
global-asax ×1
json ×1
linq ×1
linq-to-sql ×1
methods ×1
regex ×1
routing ×1