PHP array_merge array_diff array_intersect function c# alternative
If you've got LINQ available to you, you can use Union, Except, Intersect, and Distinct:
- array1.Union(array2).Distinct().ToList()
- array2.Except(array1)
- array1.Except(array2)
- array1.Intersect(array2)
MySQL: Delete All Duplicate Rows Except the Earliest One in One SQL
You want to add a unique index to a table, and unfortunately, there are already many duplicate rows in it. Manually find and delete these rows is time-wasting and error-prone. So why won't we just write one SQL statement and quickly resolve it?
First try, I wrote the following statement, and it won't work:
DELETE FROM PromotionSkus A
WHERE
A.SkuId IN (SELECT SkuId FROM PromotionSkus B GROUP BY B.SkuId HAVING COUNT(B.SkuId) > 1)
AND
A.Id NOT IN (SELECT MIN(Id) FROM PromotionSkus C GROUP BY C.SkuId HAVING COUNT(C.SkuId) > 1);
AND this one below works!
DELETE FROM PromotionSkus A
WHERE
A.Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id, COUNT(SkuId) AS Total FROM PromotionSkus GROUP BY SkuId HAVING Total > 1) AS B)
AND
A.SkuId IN (SELECT SkuId FROM (SELECT SkuId FROM PromotionSkus GROUP BY SkuId HAVING COUNT(SkuId) > 1) AS C);
The reason is well explained in this brilliant article.
Another mysql tip: using mysqldump export a table with one line one row.
mysqldump --databases YourDataBaseName --tables YourTableName --skip-extended-insert
Why do we need that? It is much easier to compare !
.NET Core 3.1 Swagger UI Tweaks
- Present enums as string. Modify your
StartUp.cs
, add the highlight part below:
services.AddMemoryCache().AddMvcCore().AddJsonOptions(opts => { opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); }) .AddDataAnnotationsLocalization();
-
Enable XML Comments
- Manually add the two lines in PropertyGroup below to the .csproj file:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
2. Add the options in the code below
services.AddSwaggerGen(options =>
{
options.IncludeXmlComments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{AppDomain.CurrentDomain.FriendlyName}.xml"), true);
});
SQLSugar: How to implement Count(FieldName) and GROUP BY in SQLSugar
await Db.Queryable<Entity>().Where(_ => _.SampleFieldName== sampleFieldValue)
.GroupBy("AnothterFieldNameInStringFormat")
.Select<ResultModel>("AnotherFieldNameInStringFormat, Count(AnotherFieldNameInStringFormat) Total")
.ToListAsync();